bug 1909875: improve CrashIdsFailedToPublish information #6775
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.
When a user uses the Reprocessing API, they send some number of crash ids to be reprocessed. If something happens when publishing the crash ids to PubSub, the crash id is added to a "failed" list and the exception is logged. Then at the end if there were any failures, a CrashIdsFailedToPublish exception is thrown with the list of failures.
That causes Django to return an HTTP 500 to the user and sentry captures the CrashIdsFailedToPublish exception, but the event isn't very helpful--we have no idea what happened.
This attempts to alleviate that in a couple of ways:
It uses sentry_sdk.capture_exception() to capture each problem enountered when publishing to PubSub.
We'll be able to see what's going on in Sentry events.
It keeps track of the errors along with the crash ids and wraps that in the CrashIdsFailedToPublish exception message so we're not ending up with just a list of crash ids--we get the errors, too.