-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Http Retry] Response headers interference #269
Comments
There is already a mechanism that logs all relevant information. I assume this isn't probably referenced to the correct flow, so that it's not in log of the flow (only in the general log on the server). We will investigate this. |
I investigated this, and largely this is by design:
As this is resend and not send to the error route, it's logged as a warning: "HTTP Status: 500 Server Error | Flow: ID_66b1efbde56ba4001000012e | API Endpoint: https://next.dovetail.world/test/inbound_http/regressiontests/HttpRetry500 | Retry in 10000 milliseconds | Attempt 1 " This gives the following warning:
This is minimal because when there is a 500, this means there is "an internal server error", which means the error won't give any extra useful information I guess, and then it just retries. |
Even with 5xx error the body and headers can certainly contain useful information: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500 For example: the response body for Bol.com and Channel Engine contain request id's for 5xx responses. Ideally you would like to see a full representation of the response message, just like any other exchange. There are some other problems with the current implementation, i.e. timeouts (asynch & queues) triggering while the retry process is still ongoing. |
Tested, seems to be no interference anymore. Did notice the extra headers we are sending that might cause issues with existing Http component implementations. Will discuss with Norman. |
Summary
Retries in the Http component include headers from the previous (re)try.
Testcase
Dovetail version: 4.17.0-SNAPSHOT-dcb7cc8
Instance: next
Tenant: Regression Tests
Sending Flow: HttpRetrySocketAsynchronous
Flow version: 7
url: https://next.dovetail.world/flowdesigner/66b1efbde56ba4001000012e/7/route
Receiving Flow: HttpRetry500
Flow version: 1
url: https://next.dovetail.world/flowdesigner/66b31c0ee56ba4000e00002f/1/route
Input:
Output:
Notice the transactions of the Sending flow and the Receiving flow. Especially the body and headers for the first try and the 2 retries. There are screenshots in the results section below:
Result
Initial Http request
Sending

Receiving

1st retry
Sending

Receiving

2nd retry
Sending

Receiving

After the Http retries
Conclusion
I expect the headers from the 5xx responses to not interfere with the retry messages. Only the
breadcrumbId
,Content-Type
andcounter
header should be included.There should be a way to see the response headers somewhere though. They can contain valuable information about why the server responded with a 5xx in the first place. Maybe in the Logs of a flow?
The same is true for the 5xx response body. This is a seperate issue: #268.
Original issue on Dovetail Application board: https://github.com/dovetailworld/front-end/issues/4635.
The text was updated successfully, but these errors were encountered: