After updating SharePoint 2013 to November 2017 CU or later you may not be able to open documents with Office

*** UPDATED TO INCLUDE Stefan Gossner and Adam Soreson's INPUT ***

Symptom

After updating SharePoint 2013 to November 2017 CU from a previous version you will not be able to open Office documents (Word, Excel, PowerPoint) but other types of documents like .txt and .pdf files can be opened. There is no indication of the error in the ULS log.

Observing the network activity using a tool like Telerik's Fiddler, you will notice that the response from cellstorage.svc is 400 (bad format) or 401 (unauthorized). This is why the Office Integration piece fails and other file types succeed. The failed request will look like:

 POST /_vti_bin/cellstorage.svc/CellStorageService

Cause

November CU brings a breaking update to stssoap.dll. This dll is normally cached in the _app_bin folder of the web application and it does get updated at the 15 hive bin folder but not at the local web applications bin folder.

For example, imagine a web application for portal.contoso.com, on location C:\inetpub\wwwroot\wss\VirtualDirectories\portal.contoso.com80. You will find stssoap.dll in  C:\inetpub\wwwroot\wss\VirtualDirectories\portal.contoso.com80\_app_bin\stssoap.dll version not to match the version in C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\CONFIG\BIN\stssoap.dll.

The main cause for this is that the update was not done properly (i.e. via Wizard or using all the appropriate commands via PSConfig).

 

Resolution

The DLL version in the 15 hive should be at 15.0.4981.1000 (10/17/2017) or higher. The local version in local bin should be dated before 10/17/2017. If this is not the case, this solution does not apply to you. The solution also applies to you if the version in 15 hive is newer than the version of the local bin for future stssoap.dll changes.

Make sure you run the update properly. Always prefer to use Configuration Wizard over PSConfig to update.

This command should update only the web applications _app_bin, but this is not the best solution:

 PSConfig.exe -cmd applicationcontent -install

See more details here.

The best solution is to run the configuration Wizard or to emulate all the steps of the configuration wizard using this:

 PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install