| 1000 | Success | Success |
| 1008 | System | Internal error |
| 1009 | System | Unknown error |
| 1010 | System | Invalid input |
| 1011 | System | Route not found |
| 1012 | System | Unauthorized — invalid API key (mobile) or session not found / expired (web BFF) |
| 1101 | User | User already exists |
| 1102 | User | User not found |
| 1103 | User | User already confirmed |
| 1104 | User | Email not confirmed |
| 1106 | User | Must sign in with password |
| 1107 | User | Password already set |
| 1108 | User | Must set a password first |
| 1109 | User | User identity error |
| 1110 | User | Invalid refresh token |
| 1120 | Confirmation | Confirmation code not found |
| 1121 | Confirmation | Confirmation code expired |
| 1122 | Confirmation | Confirmation code wrong |
| 1123 | Confirmation | Confirmation code already sent |
| 1140 | Email | Email already registered |
| 1141 | Email | Same email requested for change |
| 1142 | Email | Email rejected |
| 1160 | OAuth2 | OAuth2 verification failed |
| 1161 | OAuth2 | OAuth2 provider not supported |
| 1170 | Lists | List not found |
| 1171 | Lists | Duplicate collaborators |
| 1172 | Lists | Cannot share a list with yourself |
| 1173 | Lists | Share attempt not found |
| 1174 | Lists | Share attempt expired |
| 1175 | Lists | Share attempt no longer pending |
| 1176 | Lists | Collaborator already revoked |
| 1177 | Lists | List access denied |
| 1178 | Lists | Description too long for this list type |
| 1180 | Lists | Item not found |
| 1181 | Lists | Owner cannot claim wish-list items |
| 1182 | Lists | Item already claimed by another user |
| 1183 | Lists | Only the claimer may change the status of a claimed item |
| 1184 | Lists | Only the claimer (or list owner) may unclaim an item |
| 1185 | Account | Device not found |
| 1186 | Account | Cannot delete current device |
| 1187 | Account | Device has been revoked |
| 1188 | Account | Device ID prefix does not match declared platform |
| 1189 | Account | Apple DeviceCheck attestation verification failed |
| 1190 | Sync | Data source not found |
| 1191 | Account | Device quota exceeded for this plan |
| 1200 | AI | AI unknown error |
| 1201 | AI | AI client error |
| 1300 | Subscription | Max lists reached |
| 1301 | Subscription | Subscription expired |
| 1302 | Subscription | Max collaborators reached |
| 1303 | Subscription | Shared list access level exceeded |
| 1400 | Referral | Cannot invite yourself |
| 1401 | Referral | Referral already sent recently — cooldown active |
| 1402 | Referral | Invitee has already accepted or been rewarded |
| 1403 | Referral | Email already has an active referral from another user |
| 1500 | Sync | Resync required — cursor too old, client must re-bootstrap from cursor=0 |
| 1501 | Sync | Invalid push batch — missing op_id or x-device-id header |
| 1502 | Sync | Push batch too large — exceeds 100 ops or 256 KB body |
| 1503 | Sync | Single push payload too large — exceeds 256 KB raw |
| 1504 | Sync | Optimistic lock conflict — surfaced as per-op conflict status, not top-level error |
| 1505 | Sync | Entity is pull-only and cannot be pushed by clients (e.g. subscription) |