The transactionMonitor added in #4174 keeps its tracked set in memory only. A wallet transaction that is already stuck when the node restarts (deploy, upgrade, crash) is not re-tracked — it was broadcast by the previous process, so it is never registered again and cross-restart stuck transactions go undetected.
Restarts happen on a fairly regular cadence, so this is a recurring monitoring gap rather than a rare edge case (raised in review of #4174).
Follow-up: persist the tracked set (e.g. to the node's storage) and rehydrate it on startup before the monitor's first check pass, so a transaction that was stuck across a restart is still surfaced. Recommended before this ships to mainnet.
Refs #4174.
The
transactionMonitoradded in #4174 keeps its tracked set in memory only. A wallet transaction that is already stuck when the node restarts (deploy, upgrade, crash) is not re-tracked — it was broadcast by the previous process, so it is never registered again and cross-restart stuck transactions go undetected.Restarts happen on a fairly regular cadence, so this is a recurring monitoring gap rather than a rare edge case (raised in review of #4174).
Follow-up: persist the tracked set (e.g. to the node's storage) and rehydrate it on startup before the monitor's first check pass, so a transaction that was stuck across a restart is still surfaced. Recommended before this ships to mainnet.
Refs #4174.