Dashboard charts frequently not loading with "Chart not configured properly..." error message

Chris
Chris
  • Updated

Author: Chris Breaux

Date: 2025-06-2025

Audience: Everyone

Environmental details: Self-Hosted KOTS

Summary

If projects are configured with several, 'expensive' filter queries, some of the widgets may not display correctly if the application is under-resourced. Here is an example of what you might see in the UI:

If you inspect the network traffic using the developer tools, you may see some timeout errors.
If you inspect the core-0, search-0 and elasticsearch-0 logs, you may see errors similar to these:
 

  2025-04-07 13:56:12,991 ERROR http-nio-8080-exec-8830 jamaconnect [934ded] [com.jamasoftware.contour.search.impl.SearchGateway]
  - Non-OK search response : A Search Service error occurred, exception class:
  SearchRuntimeException with message: "30,000 milliseconds timeout on connection
  http-outgoing-1843 [ACTIVE]". See Search Service logs for more detail. : InboundJaxrsResponse{context=ClientResponse{method=POST,
  uri=http://search:80/jamaconnect/ContourItem/_search, status=400, reason=Bad
  Request}}
  com.jamasoftware.service.search.client.SearchClientException: Non-OK search response
  : A Search Service error occurred, exception class: SearchRuntimeException with
  message: "30,000 milliseconds timeout on connection http-outgoing-1843 [ACTIVE]".
  See Search Service logs for more detail. : InboundJaxrsResponse{context=ClientResponse{method=POST,
  uri=http://search:80/jamaconnect/ContourItem/_search, status=400, reason=Bad
  Request}}
  at com.jamasoftware.service.search.client.RESTSearchClient.getResponse(RESTSearchClient.java:207)
  at com.jamasoftware.service.search.client.RESTSearchClient.search(RESTSearchClient.java:123)
  at com.jamasoftware.contour.search.impl.SearchGateway.getSearchResponse(SearchGateway.java:34)
  at com.jamasoftware.contour.search.impl.RemoteSearcher.searchForItemRef(RemoteSearcher.java:132)
  at com.jamasoftware.contour.search.service.impl.SmartFilterServiceImpl.searchForItemRef(SmartFilterServiceImpl.java:298)
  at jdk.internal.reflect.GeneratedMethodAccessor7717.invoke(Unknown Source)

  ...
 

 

21:24:58.936 [jama]  WARN  i.m.s.r.netty.channel.FluxReceive - [f7f6fc67, L:/***HIDDEN***:60395 - R:localhost/***HIDDEN***:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: recvAddress(..) failed: Connection refused
21:24:58.936 [jama]  WARN  i.m.s.r.netty.channel.FluxReceive - [f7f6fc67, L:/***HIDDEN***:60395 - R:localhost/***HIDDEN***:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: recvAddress(..) failed: Connection refused
21:25:06.989 [http-nio-7500-exec-4468] [core-0,jamaconnect,8f4c01]->[764501] WARN  c.j.s.s.p.ElasticSearchSearcher - Received an exception during attempt to run search against types ContourItem for tenant jamaconnect (enable debug to see full search request). Ex: 
java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3544 [ACTIVE]
at org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:892)
at org.opensearch.client.RestClient.performRequest(RestClient.java:301)
at org.opensearch.client.RestClient.performRequest(RestClient.java:304)
at org.opensearch.client.RestClient.performRequest(RestClient.java:289)
...
Suppressed: java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3554 [ACTIVE]
at org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:892)
at org.opensearch.client.RestClient.performRequest(RestClient.java:301)
... 73 common frames omitted
Caused by: java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3554 [ACTIVE]
...

Solution

There are a few ways we can address this problem:
(1) Increase the available resources on the application server and allocate them per our recommendations in the user guide.

(2) If you are on a 9.6.x version of Jama Connect, consider upgrading to the latest available version. Improvements have been made to 'embedded queries' (used by certain filters). In earlier versions, these embedded queries would run against all projects. In later versions, the queries can be constrained to use 'current project' which greatly improves query performance.
e.g.

Cause

Some filter queries can be quite 'expensive' and when multiple queries are made as part of a dashboard setup, the available resources on the server may not be sufficient to 'handle' all of the requests.

Prevention

  • Use our recommended Enterprise resources allocation (instead of just the 'minimum' specs)
  • Where possible, constrain filter query parameters as much as possible. (Some options are only available in versions > 9.17.x)

References

 

Please feel free to leave feedback in the comments below.

 

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.