Last Modified Date: 16 Aug 2016
If you use the REST API to publish a workbook or data source to Tableau Server 9.2 or later, you get a 500 error during the following calls, and the publish process fails:
Tableau Server 9.2 (REST API 2.1)
This issue can occur if the payload in the request does not conform to the
RFC 1341 specification for
multi-part payloads. A typical problem is that the first part of the multi-part request is blank except for header information.
Per the specification, a blank section of the payload requires at least two blank lines. In the Append to File Upload,
Publish Datasource, and Publish Workbook requests, the blank section of the payload is the
Changes since Tableau Server 9.0-9.1
The issue can occur even with workbooks or data sources that were published successfully using Tableau Server 9.0 or 9.1. In Tableau Server 9.2, changes were made to how the REST API requests are processed internally in Tableau Server. As part of these changes, the REST API now validates requests more rigorously than in previous versions.
For this particular error, earlier versions of the REST API accepted a payload that did not exactly conform to the RFC 1341 specification. When the same request is made to Tableau Server 9.2, the request now fails.
Make sure that the payload for a Append to File Upload, Publish Datasource, and Publish Workbook request
is formatted correctly, as shown in the following example. (The boundary
filename values will be different for each upload.) The
request_payload part of the
request payload has no content, just headers, and is formatted with two blank lines.
--6691a87289ac461bab2c945741f136e6 Content-Disposition: name="request_payload" Content-Type: text/xml --6691a87289ac461bab2c945741f136e6 Content-Disposition: name="tableau_workbook"; filename="usps-rates.twbx" Content-Type: application/octet-stream content here --6691a87289ac461bab2c945741f136e6--