Troubleshooting the TERR Service

If you have problems with the TERR service, review these tips.

Problems with the Dockerfile on a Linux node manager
After the service runs, you can view the Dockerfile that the TERR service writes. You can find the file in the root service directory (for example, /opt/tibco/tsnm/<server version_#>/nm/services/TERR service Linux-<version_#_ID>/dockerfile/Dockerfile.
Try test building the Docker image in the environment before starting the TERR service.
Note: Building an image takes time, so it can take a few minutes for the web UI to display a possible image build failure. If a build failure occurs, the retry mechanism is triggered automatically.
Problems with the startup script
Check your script line endings.
Important: Remember that for any script you write, the line endings must be appropriate for the operating system where the TERR service runs. Many text editors can perform end-of-line (EOL) conversion.
The TERR service, Web Player, or node becomes unresponsive on a regular basis
This problem can occur if you have installed the TERR service on a node with another Spotfire service, such as the Web Player or Automation Services. Install the TERR service on its own node.
Error message "Bad Request (400) - Unable to parse form content"

If you see this error, then the data being uploaded to the service is too large.

When a Spotfire data function is run, it sends the relevant data from Spotfire to the TERR service for processing. The TERR service has a file size upload limit, the default of which is 100 MB. When a data function is run with data that exceeds this limit, the TERR service returns the following error:

Error from Remote Service: Bad Request (400) - Unable to parse form content 

   at Spotfire.Dxp.Data.DataFunctions.Executors.RemoteServiceClient.RunFunction(DataFunctionInvocation invocation)
   at Spotfire.Dxp.Data.DataFunctions.Executors.SPlusFunctionExecutor.<ExecuteFunction>d__11.MoveNext()
   at Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.<ExecuteFunction>d__8.MoveNext()

An administrator can change this upload limit if needed by creating a custom configuration. See the topic File size upload limit inTIBCO® Enterprise Runtime for R Service Installation and Administration for more information.

If users see this error message, consider creating a custom configuration that increases the limits for both of the following properties:

Property setting Description
spring.servlet.multipart.max-file-size The total file size for upload cannot exceed the value for this setting.
spring.servlet.multipart.max-request-size The total request size for a multipart file upload cannot exceed the value for this setting.
Note: At a certain point, the Java Heap size fails to handle very large files. The threshold for this behavior is dependent on the amount of RAM the TERR service node has. When the Java Heap Size is exceeded, the following error message is displayed.
Error from Remote Service: Internal Server Error (500) - java.lang.OutOfMemoryError: Java heap space