HTTP 400 · Bad Request
HTTP 400 Media / Files

When & why it happens

A previously-issued file reference has aged out. Re-fetch the message/photo/document to get a fresh reference, then retry.

Handling in gogram

Surfaced as *gogram.ErrResponseCode. Match on the message:

if err, ok := err.(*gogram.ErrResponseCode); ok { if err.Message == "FILE_REFERENCE_EXPIRED" { // handle this error } }