Return 404 when Active Storage representation blobs are missing - #173
Merged
Conversation
Rescue FileNotFoundError in representation show so a blob record without a storage object returns 404 instead of 500 (AppSignal #370). Co-authored-by: Thibaud Guillaume-Gentil <thibaud@thibaud.gg>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
Production AppSignal exception incident #370 is an
ActiveStorage::FileNotFoundErrorfromActiveStorage::Representations::RedirectController#show:Recent traces (rev
1811e08, tenants such asdemo-de, blob id 131) 500 onGET representations/redirectbecause the blob record exists but the object is missing from S3. Rails already returns 404 for an invalid variation signature and for unprocessable image bytes (PR #172 / AppSignal #458); a missing storage object still raised.What
ActiveStorage::FileNotFoundErrornext toInvalidSignature/Vips::Error/ImageProcessing::ErrorinActiveStorage::Representations::BaseController#set_representation(head :not_found).after_initialize+class_evalstyle as PR Return 404 when Active Storage image variants cannot be processed #172 (gem controller is not loaded while initializers run).Do not merge or deploy from this PR. Leave the AppSignal incident open.