What it means
incorrect, expired or reused factor.
How to handle it
Enter a fresh authenticator code or an unused recovery code; a used or expired value cannot be retried.
Wire contract
| Code | mfa_invalid |
|---|---|
| Class | permission |
| HTTP status | 403 |
| Meta keys | None |
| Raised | Yes |
The response uses the standard {"error": {…}} envelope. Branch on error.code, not the human-readable message. Preserve request_id when reporting a failure.