/restore on Discord could not read the file it was given
@NotRetarded ran it ten minutes after 2.12.0 shipped and got "I could not read that attachment", which is a sentence that says nothing.
The attachment does not come from the API — it comes from Discord's CDN, which sits behind Cloudflare, and Cloudflare refuses Python-urllib/3.x. Every other request this bot makes already identifies itself. That one fetch did not. It does now.
The message was the other half of the problem. It named nothing and put the actual reason in a container log the user has no reason to open — the exact failure mode this whole thread has spent a week on, and I wrote it anyway. An HTTP refusal now reports its status code, a network error quotes itself, and a file that turns out not to be JSON says which part failed.
Settled along the way
Discord takes a .json attachment with its real filename and previews it inline. No .txt rename, no zip — that was the one thing 2.12.0 shipped without knowing, and @NotRetarded's test answered it.