Mastodon contains a feature that creates a background job to retry if fetching remote media fails: mastodon/mastodon#11775.
Unfortunately, since Fly cannot mount the same volume in different process VMs, that means Sidekiq creates a valid database record and then writes the image into a container-only temporary file system. At that point Mastodon starts returning 404s for those images, but it has a valid DB record, so there's not any easy way to recover.
I think this means that Puma and Sidekiq have to run inside the same VM for this to work at all.
Mastodon contains a feature that creates a background job to retry if fetching remote media fails: mastodon/mastodon#11775.
Unfortunately, since Fly cannot mount the same volume in different process VMs, that means Sidekiq creates a valid database record and then writes the image into a container-only temporary file system. At that point Mastodon starts returning 404s for those images, but it has a valid DB record, so there's not any easy way to recover.
I think this means that Puma and Sidekiq have to run inside the same VM for this to work at all.