Redemption error messages explained
Common /redeem validation codes: not found, already used, expired, and format errors.
How validation works
When you enter a code at /redeem, the site calls /api/redemption/validate and returns a message plus an errorCode when invalid.
Common error codes
| Code | What it usually means | What to do |
|---|---|---|
CODE_NOT_FOUND | No matching code in our system | Re-check characters (0/O, 1/I); see Where do I find my redemption code? |
CODE_ALREADY_USED | Single-use code already redeemed | Open Media Library instead of re-entering the code — already redeemed help |
CODE_EXPIRED | Code past its expiry date | Contact /help/contact with purchase proof |
VALIDATION_ERROR | Missing code, bad email, or format issue | Enter the full code; use a valid email for guest redeem |
PURCHASER_SELF_REDEEM | Distributor inventory code blocked for purchaser | Redeem through the intended reader flow (distribution codes) |
SERVER_ERROR | Temporary server issue | Wait and retry; contact support if it persists |
Friendly “already yours” states
If you already redeemed successfully, validation may return a green message that the library already has the title — open /library instead of treating it as an error.
Rate limits
Too many validation attempts trigger a short cooldown on the redeem page.

