HTTP 400 · Bad Request
HTTP 400 Authentication

When & why it happens

The login code timed out before SignIn was called. Request a new code via auth.resendCode.

Handling in gogram

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

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