Details:
In some Spotfire environments, version 12.1.0 and above, including 14.0 LTS, which are configured to use Kerberos user authentication, a server-side Information Services process might fail to start. This will result in Spotfire Analyst client errors when end users try to open Information Designer window:
Error message: Could not start Information Designer because the Information Services did not respond as expected.
InformationModelException at Spotfire.Dxp.Data: The remote server returned an unexpected response: (431) 431
This is a known issue. It usually occurs when end user is a member of a lot of groups in Active Directory, resulting in a relatively large Kerberos token. Reference: https://github.com/linkedin/cruise-control/issues/2011
On Spotfire Server side, this error is captured in 2 server log files:
<Spotfire-Server>\tomcat\logs\informationservices\server.log:
WARN 2023-11-15T13:47:21,508-0600 [] jetty.http.HttpParser: Header is too large 8193>8192
<Spotfire-Server>\tomcat\logs\server.log:
WARN 2023-11-15T13:47:21,539-0600 [username, #B-6, #124] ws.external.InformationServiceHttpProxyHandler: 431 Request Header Fields Too Large: "<html><EOL><head><EOL><meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/><EOL><title>Error 431 Request Header Fields Too Large</title><EOL></head><EOL><body><EOL>
...
Resolution:
It is possible to set Jetty HTTP configuration options requestHeaderSize and ResponseHeaderSize so that Spotfire Server will use higher values while launching Information Designer as an external process. This can be done by either (A) adding new values manually in the Spotfire Server Configuration Tool, or (B) by editing configuration.xml file via command line:
A. Using Spotfire Server Configuration Tool:
1. In the Server Configuration tool (configuration.xml tab), or in the exported configuration.xml file add the below configuration settings under <information-services> tag:
<external-process>
<jvm-opts>
<argument>-Djetty.httpConfig.requestHeaderSize=[value]</argument>
</jvm-opts>
</external-process>
For requestHeaderSize, the [value] should be higher than 8192, which is often default, for example, 32768 or 65536.
2. Save configuration.xml file and restart Spotfire Server service.
B. Using the Command line:
1. Export configuration.xml file, via export-config command or in Server Configuration Tool.
2. Run command below to modify it:
Windows:
config config-external-information-services-process -A-Djetty.httpConfig.requestHeaderSize=65536
Linux:
./config.sh config-external-information-services-process -A-Djetty.httpConfig.requestHeaderSize=65536
3. Import configuration.xml, via import-config command or Server Configuration Tool.
4. Restart Spotfire Server service.
After Spotfire Server restart, try opening Analyst client and launching Information Designer tool. There should not be any errors or warnings displayed to end user or written in server log files.
References:
As of Spotfire version 12.1.0, Information Services runs as an external process. This change is described in more detail here, under "Information Services runs in its own sub-process on the TIBCO Spotfire Server": https://community.tibco.com/s/article/What-s-New-in-Spotfire-12-1
Command reference: https://docs.tibco.com/pub/spotfire_server/latest/doc/html/TIB_sfire_server_tsas_admin_help/server/topics/config-external-information-services-process.html