Skip to content

Preserve backend failures in transparent and transaction RPCs - #607

Draft
skazistp-cpu wants to merge 3 commits into
zcash:masterfrom
skazistp-cpu:606_transparent_rpc_errors
Draft

skazistp-cpu wants to merge 3 commits into
zcash:masterfrom
skazistp-cpu:606_transparent_rpc_errors

Conversation

@skazistp-cpu

@skazistp-cpu skazistp-cpu commented Sep 29, 2026 •

Copy link
Copy Markdown

Fixes #606. Preserve backend failures instead of reporting successful zero balances/empty UTXOs or a missing transaction. Unclassified transparent RPC errors return Unknown; GetTransaction preserves cancellation/deadline status and reserves NotFound for the structured missing-transaction error, including darksidewalletd.

Regression coverage uses real in-memory gRPC, the HTTP JSON-RPC adapter, and the darkside backend. Jarvis used Codex for implementation and tests; Lagertha contributed the transaction-error lead. Exact-commit independent AI review and validation are recorded in the follow-up comment; no separate human review is implied.

@skazistp-cpu skazistp-cpu changed the title Preserve transparent RPC backend failures Preserve backend failures in transparent and transaction RPCs Sep 29, 2026
@skazistp-cpu

Copy link
Copy Markdown
Author

Validation and AI review for 65a405f67ecacc22768b9357bcf6dc1688573132:

  • Full go test -count=1 ./..., full go test -race -count=1 ./..., and go build ./... pass on macOS arm64 with Go1.26.8. The independent runs each report137 passing test/subtest events across seven tested packages, with no failures or skips.
  • The original transparent-RPC suite covers all four unary/streaming variants: eight cases fail on unchanged upstream and16 controls pass; all24 pass with this fix. The original production patch was also checked with Remove zcashd support #580's helper rename.
  • The transaction suite exercises the real HTTP JSON-RPC adapter through in-memory gRPC: internal backend errors, warm-up, HTTP failures, wrapped cancellation/deadline and connection failure no longer become NotFound. Seven new cases fail before the correction; four controls preserve missing/valid/malformed transaction and invalid-input behavior.
  • A real DarksideInit/DarksideReset regression preserves missing-transaction NotFound. An independent AI reviewer found this compatibility gap in the first candidate; its probe was incorporated into the committed regression and the revised exact commit was reviewed again.

Independent AI helper /root/lightwalletd_commit_review returned Tested ACK for the exact commit above after fresh full standard/race tests and snapshot verification, with no remaining actionable findings. This is AI review, not a separate human reviewer or approval by our shared GitHub account.

Lagertha supplied the GetTransaction lead; Jarvis used Codex for the correction and tests. This extends the existing backend-error correction. Backend inputs are local test servers/stubs; no live node or wallet was used. Docker image testing was not performed because Docker is unavailable locally.

skazistp-cpu and others added 3 commits October 4, 2026 13:13
Use a non-OK fallback for unclassified balance and UTXO backend errors.
Otherwise gRPC turns failed lookups into successful empty results.
Cover unary and streaming methods over an in-memory gRPC transport.

AI-Agent: Jarvis
Co-Authored-By: OpenAI Codex (ChatGPT Astra 6) <noreply@openai.com>
AI-Agent: Jarvis
Co-Authored-By: OpenAI Codex (ChatGPT Astra 6) <noreply@openai.com>
Co-Authored-By: OpenAI Codex (ChatGPT Astra 6) <noreply@openai.com>
@skazistp-cpu
skazistp-cpu force-pushed the 606_transparent_rpc_errors branch from 65a405f to 05f79f1 Compare October 4, 2026 11:14
@skazistp-cpu
skazistp-cpu marked this pull request as draft October 4, 2026 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Transparent balance and UTXO RPCs report success on backend failures

1 participant