# Best practice for pinpointing error messages

**URL:** <https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [July 8, 2023, 12:43pm UTC](https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092 "2023-07-08T12:43:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![hventer23](https://avatars.discourse-cdn.com/v4/letter/h/bbce88/32.png) [@hventer23](https://forum.inductiveautomation.com/u/hventer23)\
**Post date:** [July 8, 2023, 12:43pm UTC](https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092/1 "2023-07-08T12:43:04Z")

</div>

I am getting the following error on my GW logs page (TRACE):

**Log Properties:**

```auto
route-group : perspective
route-path : /fetch/:project/:uuid

```

**Detailed log info:**

```auto
java.lang.IllegalArgumentException: Bounds of result set does not match that of value set. (0 in vs 2 expected)

at com.inductiveautomation.ignition.common.util.OperationAggregator$AggregationEntry.setResults(OperationAggregator.java:173)

at com.inductiveautomation.ignition.gateway.sqltags.history.TagHistoryManagerImpl.queryHistory(TagHistoryManagerImpl.java:568)

at com.inductiveautomation.ignition.gateway.tags.model.ProjectDefaultTagManagerFacade.queryHistory(ProjectDefaultTagManagerFacade.java:440)

at com.inductiveautomation.perspective.gateway.components.PowerChartModelDelegate$TagHistoryFetch.fetch(PowerChartModelDelegate.java:237)

at com.inductiveautomation.perspective.gateway.comm.FetchableCacheImpl.lambda$fetch$0(FetchableCacheImpl.java:47)

at com.inductiveautomation.perspective.gateway.threading.BlockingWork.invokeBlockingTask(BlockingWork.java:34)

at com.inductiveautomation.perspective.gateway.comm.FetchableCacheImpl.fetch(FetchableCacheImpl.java:47)

at com.inductiveautomation.perspective.gateway.comm.Routes.handleFetch(Routes.java:2322)

at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:254)

at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:61)

at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupCollectionServlet.serviceInternal(RouteGroupCollectionServlet.java:59)

at com.inductiveautomation.ignition.gateway.dataroutes.AbstractRouteGroupServlet.service(AbstractRouteGroupServlet.java:38)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)

at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)

at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)

at org.eclipse.jetty.server.Server.handle(Server.java:563)

at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)

at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)

at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:558)

at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:379)

at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:146)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)

at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)

at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)

at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)

at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)

at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)

```

All I can gather from this is that:  
-It is within perspective  
-Probably a property binding on a component/view  
-Related to history

What is the best route from here to pinpoint the issue (e.g. finding the relevant view/component uuid)?

Is there any other way/place I can get additional info regarding this error and future errors?

---

<div class="post-metadata">

**Author:** ![Joe\_Seph](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joe_seph/32/40277_2.png) [@Joe\_Seph](https://forum.inductiveautomation.com/u/Joe_Seph)\
**Post date:** [July 17, 2023, 10:04pm UTC](https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092/2 "2023-07-17T22:04:48Z")

</div>

Hi Hventer,

You are correct that this looks like it is coming from Perspective and likely a tag history binding. On line four it states:

"at com.inductiveautomation.perspective.gateway.components.PowerChartModelDelegate$TagHistoryFetch.fetch(PowerChartModelDelegate.java:237)"

So you may want to take a look at any power tables that are pulling tag history and specifically the bindings on said table. Do you have nay tables that are behaving incorrectly or not as you expect?

---

<div class="post-metadata">

**Author:** ![hventer23](https://avatars.discourse-cdn.com/v4/letter/h/bbce88/32.png) [@hventer23](https://forum.inductiveautomation.com/u/hventer23)\
**Post date:** [August 12, 2023, 9:33am UTC](https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092/3 "2023-08-12T09:33:06Z")

</div>

Thanks for the reply Joe, I do think I know which power chart it is and it seems to be solved now thanks.

I think the main issue I still have is that if I am working on a large project with many power charts, there is no way of knowing which one is causing the problem? The log does not point you to e.g. a path in your designer perspective tree where you used a power chart in a view.

I mean if I have one power chart defined in a view and that view is served to many operators, I don't expect to know which instance of that power chart gave an issue. But if the power chart is uniquely used multiple times in different views, then I would at least like to know which one is giving me a problem.

Hope that makes sense? But for now the problem is solved and I can at least go forward 👍

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [August 12, 2023, 3:43pm UTC](https://forum.inductiveautomation.com/t/best-practice-for-pinpointing-error-messages/76092/4 "2023-08-12T15:43:48Z")

</div>

> [@hventer23](#):
>
> I think the main issue I still have is that if I am working on a large project with many power charts, there is no way of knowing which one is causing the problem? The log does not point you to e.g. a path in your designer perspective tree where you used a power chart in a view.

The logs should show what component raised the error. I can’t screenshot anything right now as I’m posting from a phone, but when a perspective component causes an issue you usually get its path in the logs
