Never return 5xx errors on delivery failures #39
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, incoming webhooks will return an HTTP 4xx or 5xx error under any of these circumstances:
This behavior seems ideal for scenarios 1 and 2, but not for 3. We should only return errors if the payload was malformed or we just couldn't handle it. Other cases (such as delivery failures in scenario 3) are not the webhook's fault and should therefore not be reported as errors to them. (We should instead of our own internal mechanisms to retry delivery, log failures, etc)
The current behavior in scenario 3 is especially problematic for senders like Argo CD, which will reattempt delivery of the webhook to Mailroom multiple times if it sees an HTTP 5xx response code.
Let's therefore change this behavior to: