Vips::Error: VipsForeignLoad: "/tmp/ActiveStorage-23958-20260830-243-1rbswg.png" is not a known file format (Vips::Error)
- Dominant language
- Ruby
- Stars
- 548
- Forks
- 168
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 28
Description
## Error
```
VipsForeignLoad: "/tmp/ActiveStorage-23958-20260830-243-1rbswg.png" is not a known file format (Vips::Error)
```
## Stack trace
```
vips/image.rb:281 in Vips::Image.new_from_file
image_processing/vips.rb:40 in ImageProcessing::Vips::Processor.load_image
image_processing/processor.rb:15 in ImageProcessing::Processor.call
image_processing/pipeline.rb:50 in call_processor
image_processing/pipeline.rb:28 in block in ImageProcessing::Pipeline#call
image_processing/pipeline.rb:64 in create_tempfile
image_processing/pipeline.rb:27 in call
image_processing/builder.rb:14 in block in ImageProcessing::Builder#call!
image_processing/builder.rb:21 in instrument
image_processing/builder.rb:13 in call!
```
## Tracking Details
- **Project**: exercism-rails
- **Sentry**: [Vips::Error: VipsForeignLoad: "/tmp/ActiveStorage-23958-20260830-243-1rbswg.png" is not a known file format (Vips::Error)](https://thalamus-ai.sentry.io/issues/143820127/)
- **Culprit**: SPI::ProfileImageDataController#show
- **First seen:** Aug 30, 2026
Contributor guide
Research direction
Start with vips/image.rb:281 and image_processing/vips.rb:40, then follow the reported path through image_processing/processor.rb and pipeline.rb. Use the Sentry event and the SPI::ProfileImageDataController#show culprit to investigate why the temporary PNG is rejected. Done means the cause is established and the reported failure is prevented or otherwise handled, with verification for the affected path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100