Forum Discussion

eqbtester's avatar
eqbtester
New Contributor
5 years ago

Request times out but http logs show response (org.apache.http.client.ClientProtocolException)

Certain requests I make will timeout with the error below in the Error logs

 

2020-11-12 09:53:08,983 ERROR [WsdlSubmit] Exception in request: org.apache.http.client.ClientProtocolException
2020-11-12 09:53:08,983 ERROR [errorlog] org.apache.http.client.ClientProtocolException
org.apache.http.client.ClientProtocolException at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:839)

 

 

The HTTP log however, shows the correct response. So clearly the call went through successfully. This isn't very helpful though as each time I run a test case, some test steps timeout and the assertions aren't working correctly.

 

Any ideas as to why this is happening? Anyone else have a similar issue to this?

 

More information on what I'm doing:

- Request is already Authenticating Preemptively

- Request has an assertion to check for Valid HTTP Status codes

- I am using SoapUI 5.6.0 Open Source

- Testing the same request in Postman doesn't have this issue

- Other the same API with different request payloads work correctly. It appears to only happen when I'm intentionally using incorrect values

  • The issue was fixed after handling certain negative scenarios. The third-party service we're using weren't handling these properly.

     

    Not sure why SoapUI had this issue and not Postman, but in an strange way it was good it was discovered.

  • ZDGN's avatar
    ZDGN
    Contributor

    Ho eqbtester 

     

    Don't you have any other error information in your trace ?

    It could be caused by a malformed URL for example.

    The weird thing is that you get a correct response in your HTTP log.

    But does it mean you get the correct content or just the status ?

    If it is a time out trouble, may be you could try to modify the limit in SoapUI preferences ?

    Let me know.

    • eqbtester's avatar
      eqbtester
      New Contributor

      ZDGN wrote:

      The weird thing is that you get a correct response in your HTTP log.

      But does it mean you get the correct content or just the status ?


      The actual test step isn't giving the correct response.

       


      ZDGN wrote:

      If it is a time out trouble, may be you could try to modify the limit in SoapUI preferences ?


      That doesn't fix the issue. The problem is that the test step is timing out even after the HTTP logs show the response was returned.

       

      The full error log is below

       

      2020-11-13 09:28:29,062 ERROR [WsdlSubmit] Exception in request: org.apache.http.client.ClientProtocolException
      2020-11-13 09:28:29,074 ERROR [errorlog] org.apache.http.client.ClientProtocolException
      org.apache.http.client.ClientProtocolException
      	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:839)
      	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
      	at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:233)
      	at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:323)
      	at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:301)
      	at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:231)
      	at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:119)
      	at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:79)
      	at com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:192)
      	at com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:794)
      	at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:211)
      	at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:47)
      	at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:138)
      	at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:46)
      	at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:128)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:835)
      Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
      	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:149)
      	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
      	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
      	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:286)
      	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:257)
      	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:230)
      	at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$SoapUIHttpRequestExecutor.doReceiveResponse(HttpClientSupport.java:147)
      	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
      	at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:684)
      	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)
      	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
      	... 19 more

       

       

      • ZDGN's avatar
        ZDGN
        Contributor

        The TestStep is timing out because it can't get any valuable response.
        The error is tagued here:

        org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response

        Could it just be a mistake in the declared protocol ?

        Sending an HTTP while server is waiting for HTTPS may be.

         

        By the way does the request succeed when using in a browser ?