ERROR Send to Tableau Server (Hyper)

Hello,

When i’m trying to send data to our Tableau server, I’m getting this error :
“Execute failed: java.io.IOException: Error writing request body to server”

When we are checking the log, we can see that the first connexion is ok.
The first request, which is a post is ok.
But then, the PUT request is an error 400.

Is someone has an idea to solve this ?

Thanks

Hi @MathieuSF,
is there any other message attached to the status code? I guess the POST that succeeds is the authentication and the PUT is the actual data sending. HTTP status code 400 means Bad Request, which is strange because as far as I can see when I have a look into the code we use the official tableau library to talk to their API.
Kind regards
Alexander

Hi Alexander,

Thanks for your reply.

These are the messages, we get :

77.87.108.146 - 2020-03-09T10:09:20.971 “+0000” 80 “POST /api/2.8/sites/46ab7460-a9b7-465f-8996-18de2785509c/fileUploads HTTP/1.1” “46.252.178.164” 201 316 “0” 12214 XmYV0OVwy2r18aLjO2bfRQAAAEs

77.87.108.146 - 2020-03-09T10:09:21.087 “+0000” 80 “PUT /api/2.8/sites/46ab7460-a9b7-465f-8996-18de2785509c/fileUploads/2377:4cd6024382da432995f76adafc6b9ddb-1:0 HTTP/1.1” “46.252.178.164” 400 347 “-” 11146 XmYV0eVwy2r18aLjO2bfRgAAAGc

77.87.108.146 - 2020-03-09T10:09:21.089 “+0000” 80 “PUT /api/2.8/sites/46ab7460-a9b7-465f-8996-18de2785509c/fileUploads/2377:4cd6024382da432995f76adafc6b9ddb-1:0 HTTP/1.1” “46.252.178.164” 400 347 “-” 9644 XmYV0eVwy2r18aLjO2bfRwAAAG8

We have updated the URL of our tableau server.
And I’ve updated the url on the node.
I can see the projects from the tableau node.
So the connexion between Tableau and Knime seems ok.

But before this change, the node were when I’ve executed them.

Hi @MathieuSF,
is that from the Tableau log file or the KNIME server log file? It seems like it is the former. I think the content of the executor log on the server might be interesting as well, to see what the client got back. If you want, you can send it to me via private message. Just let me know and I will initiate a private conversation, as normal forum users cannot do this.

Do you have any strange data formats in the table that Tableau might not be able to handle? Or did it work with the same data before and simply switching the URL caused the error?

Kind regards
Alexander

@AlexanderFillbrunn it came from the tableau log file.

This is what i’ve got from Knime log :

2020-03-10 16:44:39,950 : ERROR : KNIME-Worker-38 :  : Node : Send to Tableau Server (Hyper) : 2:141 : Execute failed: Invalid response from server: Service Unavailable (Error Code: 503)

org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection$TsResponseException: Invalid response from server: Service Unavailable (Error Code: 503)
at org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection.checkResponse(RestApiConnection.java:509)
at org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection.putMultipart(RestApiConnection.java:490)
at org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection.invokeAppendFileUpload(RestApiConnection.java:404)
at org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection.invokePublishDataSourceChunked(RestApiConnection.java:347)
at org.knime.ext.tableau.hyper.sendtable.SendToTableauHyperNodeModel.execute(SendToTableauHyperNodeModel.java:161)
at org.knime.core.node.NodeModel.execute(NodeModel.java:733)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:567)
at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1192)
at org.knime.core.node.Node.execute(Node.java:979)
at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:559)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:328)
at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:204)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
Caused by: javax.ws.rs.client.ResponseProcessingException: No message body reader has been found for class org.knime.ext.tableau.hyper.sendtable.api.binding.TsResponse, ContentType: text/html;charset=utf-8
at org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:438)
at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:389)
at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:319)
at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:309)
at org.knime.ext.tableau.hyper.sendtable.api.RestApiConnection.checkResponse(RestApiConnection.java:503)

I’m looking on the Tableau server side, cause i’m guessing this came from there.

I haven’t change any data fomats from the workflow on knime, and it was working fine until our URL tableau change.

thanks again for your help.

Mathieu

Hi Mathieu,
KNIME reports a 503: Service Unavailable and the Tableau Server writes a 400: Bad Request into the log and the times do not quite match: Tableau says 2020-03-09T10:09:21.089 and KNIME says 2020-03-10 16:44:39,950. Is that because the Tableau server is in a different time zone or do the log messages maybe do not belong to the same event?
Kind regards
Alexander

Hi @AlexanderFillbrunn
We have this issue since yesterday.
This is what i’ve got yesterday from Tableau server when I’ve executed the workflow.
And I’ve just redo the same action to have the knime log.
That’s why these messages have not the same day, but it’s the same action :slight_smile:

Hi Mathieu,
I see, thanks for clarifying! I have asked a developer for his opinion. Let’s see if he has an idea! I will let you know if we find out more or have more questions.
Kind regards
Alexander

Hi Mathieu,
could it be related to this topic in the Tableau Knowledge base? https://kb.tableau.com/articles/issue/error-http-503-or-400-viewing-dashboards-after-upgrading
Kind regards
Alexander

1 Like

Hi @MathieuSF,
did you have any success with the Tableau connection? Have you checked the link I sent you? We would really like to know whether this is caused by Tableau or a problem on our end.
Kind regards
Alexander