TIBCO Spotfire Server URL fails to load resulting in "An internal error has occurred. Go to start page" error

TIBCO Spotfire Server URL fails to load resulting in "An internal error has occurred. Go to start page" error

book

Article ID: KB0076007

calendar_today

Updated On:

Products Versions
Spotfire Server All Versions

Description

The TIBCO Spotfire Server URL may fail to load in the browser, showing a "An internal error has occurred. Go to start page" error as below screenshot along with the following warning in the server.log even after successful server startup message in catalina log  ( from <TSS installation folder>\tomcat\logs).
User-added image
This behavior is regardless of authentication type on Spotfire server.
server.log ( From <TSS installation folder>\tomcat\logs) captures warnings like “HTTP method GET is not allowed” or “HTTP method GET is not allowed”  : 

Example logs for HTTP method POST:

WARN 2020-02-28T16:49:05,493-0800 [unknown, #-, #261] server.security.HttpMethodsFilter: HTTP method POST is not allowed for URI /spotfire/nodemanager/trust/ocsp
WARN 2020-02-28T16:49:06,502-0800 [unknown, #1, #42] server.security.HttpMethodsFilter: HTTP method POST is not allowed for URI /spotfire/nodemanager/command
WARN 2020-02-28T16:49:43,540-0800 [unknown, #11, #336] server.security.HttpMethodsFilter: HTTP method POST is not allowed for URI /spotfire/nodemanager/messages
WARN 2020-02-28T16:49:06,502-0800 [] server.http.HttpCallable: Failed to send ServiceConfigCommand request to 'https://tss-kerberos1.boston.local:9403/spotfire/nodemanager/command' : 405 
org.springframework.web.client.HttpClientErrorException$MethodNotAllowed: 405 
    at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:87) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:102) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:778) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670) ~[spring-web.jar:5.1.5.RELEASE]
    at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:445) ~[spring-web.jar:5.1.5.RELEASE]
    at com.spotfire.server.http.HttpCallable.call(HttpCallable.java:108) ~[spotfire-node-manager.jar:?]
    at com.spotfire.server.http.HttpCallable.call(HttpCallable.java:36) ~[spotfire-node-manager.jar:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_201]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_201]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]


Example logs for HTTP method GET:

WARN 2020-02-28T16:52:10,774-0800 [unknown, #9, #256] server.security.HttpMethodsFilter: HTTP method GET is not allowed for URI /spotfire/
WARN 2020-02-28T16:52:10,821-0800 [unknown, #9, #257] server.security.HttpMethodsFilter: HTTP method GET is not allowed for URI /spotfire/resources/min/app-lib.css
WARN 2020-02-28T16:52:10,821-0800 [unknown, #9, #258] server.security.HttpMethodsFilter: HTTP method GET is not allowed for URI /spotfire/resources/min/third-party.js
WARN 2020-02-28T16:52:10,821-0800 [unknown, #9, #259] server.security.HttpMethodsFilter: HTTP method GET is not allowed for URI /spotfire/resources/min/app.css
WARN 2020-02-28T16:52:10,821-0800 [unknown, #9, #260] server.security.HttpMethodsFilter: HTTP method GET is not allowed for URI /spotfire/resources/min/app.js
  

This can happen if the default HTTP methods are not present in Spotfire Server configuration under <allowed-http-methods> </allowed-http-methods> as below: 
  <allowed-http-methods>       <method-name>DELETE</method-name>       <method-name>GET</method-name>       <method-name>HEAD</method-name>       <method-name>PUT</method-name> </allowed-http-methods> 

Issue/Introduction

This article will help you resolve the issue if the TIBCO Spotfire Server URL fails to load in the browser resulting in "An internal error has occurred. Go to start page" error.

Resolution

This behavior is caused if current server configuration (configuration.xml) is missing GET or POST http methods.
To resolve follow below steps :
  • Export currently used configuration from the Spotfire database. To export, either login to uiconfig.bat file (uiconfig.sh on Linux) which is located in the <Installation dir>\tomcat\spotfire-bin directory  OR  execute CLI command export-config  
  • Open exported server configuration from given location in text or xml editor and search for <allowed-http-methods> tag. Ideally it should have below mentioned five http methods :     
     <allowed-http-methods>                    <method-name>DELETE</method-name>                    <method-name>GET</method-name>                    <method-name>HEAD</method-name>                    <method-name>POST</method-name>                    <method-name>PUT</method-name>             </allowed-http-methods>
  • Add any missing http methods in your configuration manually
  • Save the changes and import the configuration back to the database, either using uiconfig tool or use import-config command
  • Restart the Spotfire server
  • After successful server startup message in catalina logs, try opening the Spotfire server url in browser                                           

Additional Information

Doc: Manually editing the server configuration in the configuration tool Doc: export-config Doc: import-config