Fixed the issue -- it seems that the default S3 upload timeout of Mastodon is too low for our self-hosted distributed storage cluster, and an underperforming node today triggered a lot of failure. Increased the timeout for now. Note that attachments may take longer to upload until the performance of the cluster restores.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!