Repository navigation
docs(testnet): diagnostic runbooks for passphrase, reserve, event, and contract-ID failures - #762
Merged
phertyameen merged 1 commit intoOct 15, 2026
Conversation
Add four operational runbooks under testnet/runbooks/ following the existing runbook template, and index them in the runbooks README: - wrong-network-passphrase.md: the tx_bad_auth signature of a transaction signed for the wrong network, and how to distinguish it from contract-level authorization failures - insufficient-reserve-errors.md: separates Stellar's minimum base reserve (op_low_reserve/op_underfunded) from EphemeralAccount's internal reserve tracking (BASE_RESERVE_STROOPS, reclaim_reserve, reserve events) - event-not-appearing-in-horizon.md: troubleshooting a successful transaction whose contract event is missing, covering indexing lag, topic-filter encoding per event-topics.md, and contract scoping - contract-not-found-error.md: wrong/stale contract IDs, wrong network, and never-deployed contracts (e.g. account_factory) as causes of contract-resolution RPC errors Closes bridgelet-org#690 Closes bridgelet-org#691 Closes bridgelet-org#692 Closes bridgelet-org#693
|
@Muhammadjazuli Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
phertyameen
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds four operational runbooks under
testnet/runbooks/following the template documented intestnet/runbooks/README.md(symptom, prerequisites, diagnosis, common causes, resolution, prevention checklist), and indexes all four in the runbooks README table.wrong-network-passphrase.md(Closes #690)Documents the exact error signature of signing/submitting with the wrong network passphrase: transaction-level
tx_bad_auth(Horizon 400 / RPCsendTransactionERROR), simulation passes while submission fails, and noError(Contract, #N)is ever produced. Includes an explicit comparison table against contract-level authorization failures (UnauthorizedDestination13, sweep-digested25519_verifytraps) so the two are not conflated, plus the common config hides (copied.env, SDKNetworks.PASSPHRASE, whitespace in the passphrase).insufficient-reserve-errors.md(Closes #691)Separates Stellar's network minimum base reserve (0.5 XLM/entry;
op_low_reserve,op_underfunded,tx_insufficient_balance) fromEphemeralAccount's internal reserve tracking (BASE_RESERVE_STROOPS= 1 XLM,reclaim_reserve,get_reserve_remaining/get_reserve_available/is_reserve_reclaimed,reserveevents). Includes a layer-classification step so each family routes to the right fix, and notesReserveContractis not deployed/wired.event-not-appearing-in-horizon.md(Closes #692)Troubleshooting steps for a successful transaction whose event is missing from Horizon: indexing lag (compare Horizon's ingested ledger to the tx ledger), exact topic-filter encoding per
testnet/registry/event-topics.md(struct names vs. topic symbols, nested-array filter semantics), contract scoping (account vs. controller events), RPCgetEventsretention, and a table of which success paths emit which events.contract-not-found-error.md(Closes #693)Covers the three causes of contract-resolution RPC errors: wrong/stale contract ID (testnet resets, conflicting artifacts, the 30-day staleness mechanism in
last-verified.json), wrong network configured (valid strkey, no ledger entry on testnet), and genuinely never-deployed contracts — withaccount_factorycalled out as the canonical example, routed to the batch-creation stand-in example.Checklist
testnet/runbooks/README.mdevent-topics.md,network-config.md,contract-status.md,verify-contract-live.md)Closes #690
Closes #691
Closes #692
Closes #693