Release: develop -> main#3963
Merged
Merged
Conversation
* fix(payin): skip pay-in polling while the node is warming up The Firo/Bitcoin pay-in scanners run every second (@DfxCron EVERY_SECOND). When their node container restarts (e.g. after a deploy), it returns JSON-RPC code -28 (RPC_IN_WARMUP) for ~1 min while loading the block index / verifying blocks / loading the wallet. PollingStrategy.checkPayInEntries had no try/catch, so every tick during that window threw and was logged as an ERROR by the cron lock wrapper (LockClass) — dozens of spurious "getblockcount failed: Verifying blocks..." per restart, the single largest error bucket on dfxprd. A node briefly warming up is a transient, expected state, not an error. The Bitcoin RPC client now raises a typed NodeNotReadyError on code -28 (co-located with the existing -5 handling), and PollingStrategy catches it to skip the cycle and warn once until the node recovers. Genuine failures (other RPC codes, connection errors) still propagate. To avoid hiding a node that is genuinely stuck in warmup (e.g. reindex / wedged verify), if warmup persists past 10 min — far beyond a normal restart — it escalates to an ERROR so the stalled pay-in scanning still surfaces. No change to pay-in processing: blockHeight only advances after a successful cycle, so skipped ticks cannot miss or double-process pay-ins. * fix(payin): catch node warmup around processNewPayInEntries too Move the full check-cycle inside the try so a -28 raised by processNewPayInEntries (node restarting mid-cycle, after getBlockHeight already succeeded) is also treated as transient instead of logged as ERROR.
…06-24 as invalid (#3966)
TaprootFreak
approved these changes
Jun 24, 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.
Automatic Release PR
This PR was automatically created after changes were pushed to develop.
Commits: 1 new commit(s)
Checklist