My Reverse proxy routing has some error. I checked the back-end handled the request successfully.
From the Reverse Proxy server (API gateway) i found the below error:
2017-11-20T11:42:17.189+0800 WARNING 1256 com.l7tech.server.policy.assertion.ServerHttpRoutingAssertion: 4042: Problem routing to https://******:443/xx/xxxx. Error msg: Unable to obtain HTTP response from https://******:443/xx/xxxx: Read timed out. Timed out at 20000ms2017-11-20T11:42:17.189+0800 WARNING 1256 com.l7tech.server.MessageProcessor: 3016: Request routing failed with status 601 (Error in Assertion Processing)2017-11-20T11:42:17.189+0800 WARNING 1256 com.l7tech.server.message: Message was not processed: Error in Assertion Processing (601)
The route assertion with settings never fails as long as target returns an answer.
I check the documentation for the status 601:
Error in Assertion Processing
Assertion unable to determine whether message is acceptable; no implications on validity of message
so my question is:
How to resolve this error.
Is there a way to log the response details in this case. I want to know the response details returned from backend.
https://******:443/xx/xxxx. Error msg: Unable to obtain HTTP response from https://******:443/xx/xxxx: Read timed out. Timed out at 20000ms
Did you tested the connectivity from the GW to https://****.443?
Yes, actually this error is occasionally not persistent. This is in production environment, even though not much impact. I want to fix it.
The error is indeed the read timeout. How long does it take the backend to respond to the data in question? When you state,
"I checked the back-end handled the request successfully. From the Reverse Proxy server (API gateway)" Have you used curl from the gateway (outside of API Management) with the same request to see if its handled and the overall time? To ensure its not taking more than 20000MS (20 Seconds)? Is it just a timing thing where the HTTP Route has to small of a timeout with network latency?
You could always run a sniffer. You can audit the http reasoncode and response.mainpart etc.. But since its not successful. I dont think much of these will help. If you want to validate the gateway not seeing the response you can run a tcpdump.
Thanks, you give me some direction. You are right, as the route assertion not successful, i cannot get any help from the response. Will consider tcpdump.