Our Spotfire admin is on PTO this week, so I am walking in my old shoes this week. A user reached out when he received the error message “Spotfire could not publish”, and he was unable to save in the Spotfire library. Nine times out of ten, this error is related to temp files being deleted while Spotfire is open. But that wasn’t what happened in this case. This time, the user was trying to save a DXP that was larger than the library limit, which only became a problem when he added on-demand controls to his project. Read on to learn why on-demand caused the problem and how we fixed it.
Normally, I give you the option of reading a blog post or watching a video, but for this particular post, there’s not a lot that you’ll get out of video, so today you have to read.
Our problem began when the user added on-demand controls to his project and then tried to save it. Spotfire spit out the error shown below – Spotfire could not publish. As you can see, it gave me the dreaded “internal server error”, which is about as helpful and my dog trying to review my code. I did notice that it said “could not publish”, not “could not save”. That was a hint that this was different from previous problems I had encountered. If you aren’t familiar with on-demand controls, check out this video.
Even the full set of details from the Copy Details button didn’t provide any further information. I also tried logging the desktop application thru the Help menu, but it still showed me only “internal server error”. Whenever all I have to go on is “internal server error”, I reach out to TIBCO support.
Error message: Could not publish RC_DASH_Sweetie_Peck_Q1_2021_dev. LibraryException at Spotfire.Dxp.Framework: An Internal Server Error has occurred. (HRESULT: 80131500) Stack Trace: at Spotfire.Dxp.Framework.Library.InternalLibraryManager.StartServiceRequest(String operation, RequestStartExecuter executer) at Spotfire.Dxp.Framework.ApplicationModel.Progress.ExecuteSubtask(String title, ProgressOperation operation) at Spotfire.Dxp.Framework.Library.InternalLibraryManager.Save(LibraryEntry entry, Action`1 streamWriter, Fields fields, Boolean embedInSubtaskProgress) at Spotfire.Dxp.Application.AnalysisApplication.SaveAs(LibraryEntry entry, Document document, LibraryItemMetadataSettings metadataSettings, DocumentSaveSettings saveSettings) at Spotfire.Dxp.Forms.Application.FileUserActions.<>c__DisplayClass60_1.<SaveLibrary>b__0() at Spotfire.Dxp.Forms.Application.FormsProgressService.ProgressThread.DoOperationLoop() LibraryServiceException at Spotfire.Dxp.Services: An Internal Server Error has occurred. (HRESULT: 80131509)
Fortunately, TIBCO support quickly reminded me there is a 2GB file size limit when saving to the Spotfire library. This knowledge lived in my brain at some point but had become buried pretty deep. The user was pulling huge amounts of geo data, and while I didn’t know his exact file size, over 2GB was definitely possible.
However, we still didn’t understand why the problem appeared when the user added on-demand controls to the project. Why would that make the file size swell? Technically, it didn’t. But, with the on-demand controls users brought in more data. Furthermore, we both assume Spotfire would drop all on-demand upon closing/saving.
Well, it turns out Spotfire’s default behavior is the opposite of what I thought it would be. This isn’t the first time that’s happened, and it sure won’t be the last. Fortunately, you can change a setting with the Administration Manager that will tell Spotfire to drop all on-demand data up save/close, which keeps you within the file size limit and eliminates the problem.
Find instructions below or at this TIBCO link.
- Log into TIBCO Spotfire Analyst with Administrator privileges.
- Go to Tools > Administration Manager
- Select ‘Preferences’ tab
- Choose the group for which you want the option not to store on-demand data
- Select DataOptimization > DataOptimizationPreferences
- Click on Edit button
- Set AllowSavingOnDemandData to false
So, if you are using on-demand controls and hit the library saving limits, change this setting to get rid of the error “Spotfire could not publish”. It will also make your projects open faster because there is no data to start with. BONUS! Lastly, a few years ago I authored a post on Administration Manager settings you might want to change. If you have access to the Admin Manager, check out this post.