KB Article #179407

Java.io.IOException: disconnected while reading

Problem

A filter such as Connection or Connect to URL filter gets a "disconnected while reading" similar to the following:


ERROR 01/01/2018 00:00:00.000 nested fault: con=0x000000000000,endpoint=example.com:80,bio=0x000000000000: disconnected while reading:

java.io.IOException: con=0x000000000000,endpoint=example.com:80,bio=0x000000000000: disconnected while reading
at com.vordel.dwe.http.ClientTransaction.readResponse(Native Method)
at com.vordel.circuit.net.State.readResponse(State.java:104)
at com.vordel.circuit.net.State.sendBody(State.java:233)
at com.vordel.circuit.net.State.tryTransaction(State.java:378)
at com.vordel.circuit.net.ConnectionProcessor.invoke(ConnectionProcessor.java:285)
at com.vordel.circuit.net.ConnectToURLProcessor.invoke(ConnectToURLProcessor.java:66)
at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:146)
at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:38)
at com.vordel.circuit.InvocationEngine.recordCircuitInvocation(InvocationEngine.java:272)
at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.java:235)
at com.vordel.coreapireg.runtime.broker.InvokableMethod.invoke(InvokableMethod.java:447)
at com.vordel.apiportal.runtime.Broker.invokeMethod(Broker.java:148)
at com.vordel.coreapireg.runtime.CoreApiBroker.processRequest(CoreApiBroker.java:174)
at com.vordel.apiportal.runtime.Broker.processRequest(Broker.java:97)
at com.vordel.apiportal.runtime.virtualized.VApiRuntime.processRequest(VApiRuntime.java:83)
at com.vordel.apiportal.runtime.PortalBroker.processRequest(PortalBroker.java:38)
at com.vordel.dwe.http.HTTPPlugin.invokeDispose(HTTPPlugin.java:451)
at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:144)


Resolution

This type of error can happen for many different reasons and API Gateway logs alone are not enough to troubleshoot it. In general, this error means that the endpoint disconnected and the endpoint's logs should be investigated for reasons why. This can be caused by timeouts and other errors on the other end of the connection. If there is a proxy between the gateway and the endpoint, you have to look at that proxy for errors, as well, because it has its own set of timeout values that may have been reached or it could have experienced an error.