fix(cloud): fail exhausted payout retries (#10628)#10633
Conversation
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Reviewed — the fix is correct. Traced the boundary logic in both paths:
Both regression tests ( Money path, so leaving the merge to a maintainer per protocol. No changes requested. |
|
Reviewed #10633 at Validation notes:
I did not merge because GitHub checks are still queued/unstable on the PR. |
|
Reviewed the payout-state logic against
Two minor, non-blocking notes:
Correctness looks solid to merge; the two notes are hardening nits. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
I picked up the two hardening notes from the review thread and pushed What changed:
Validation on current head
GitHub runners restarted and are queued/UNSTABLE; no local failure from the pushed hardening patch. |
|
Re-reviewed the updated head The new delta is correct: exhausted/stuck alert sends are awaited, and retryable final-failure updates now require the row to still be Validation on the updated branch:
|
|
Small issue-hygiene update: I changed the PR body footer from Reason: this PR fixes the confirmed retry-exhausted I also checked the currently surfaced |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
Follow-up pushed: What changed:
Validation after the push:
Evidence N/A: backend-only payout processor change; no UI/native/LLM surface, so screenshot, screen recording, Android/iOS capture, and live model trajectory are not applicable. |
|
Review (8-agent PR sweep): CODE CORRECT + fund-safe — MERGE-AFTER-OPS-SIGN-OFF (money path). Traced the state machine against No code fixes needed. Being a money path, leaving the actual merge for ops sign-off (Solana-escalation + alert-frequency + the |
|
Re-reviewed current head The new behavior is the right direction for the remaining #10628 money-path concern: stale Validation in
The currently surfaced |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
Refreshed this branch onto current Validation after refresh:
This still looks like a money-path change that should wait for ops/owner sign-off before merge, but the branch itself is refreshed and locally validated. |
Summary
failedinstead of unselectableapprovedrows.requires_review = trueand sends a high-severity payout alert after the failed-state DB transition succeeds.Evidence
Tracked evidence:
.github/issue-evidence/10628-payout-retry-exhausted/README.mdValidation run after sync with
origin/develop:ELIZA_SKIP_ARTIFACT_SYNC=1 bun install --frozen-lockfile git diff --check bun run --cwd packages/cloud/shared test src/lib/services/__tests__/payout-stale-lock-recovery.test.ts bun run --cwd packages/cloud/shared lint bun run --cwd packages/cloud/shared typecheck bun run verifyResults:
bun install --frozen-lockfile: passed, no dependency changes.git diff --check: passed.packages/cloud/sharedlint: passed.packages/cloud/sharedtypecheck: passed.bun run verify: passed, including 474/474 Turbo lint/typecheck tasks and final dist-path consumer checks.N/A
packages/cloud/sharedpayout processor change; no app, native, Android, or UI surface changed.network='solana'processing rows with nobroadcast_tx_hashtofailed+requires_reviewinstead of re-approving them. This intentionally takes the safe manual-review posture from Payout: retry-exhausted redemptions orphan in 'approved' (stuck, no alert) + Solana lacks nonce fencing on recovery #10628 rather than adding a second Solana fence mechanism.Fixes #10628
Additional validation after
f8fb3e0a5bebun test /Users/shawwalters/eliza-workspace/milady/eliza-10200-runner-plan/packages/cloud/shared/src/lib/services/__tests__/payout-stale-lock-recovery.test.tsfrom/tmp: passed with 11 tests, 0 failures, 63 expectations.bunx biome check packages/cloud/shared/src/lib/services/payout-processor.ts packages/cloud/shared/src/lib/services/__tests__/payout-stale-lock-recovery.test.ts: passed.git diff --check: passed.bun run --cwd packages/cloud/shared lint: passed.bun run --cwd packages/cloud/shared typecheck: passed.bun run verify: passed end-to-end, including 474/474 Turbo tasks and 28 dist-path consumer configs.