Things to check, in order, before spending real time on a bug that only reproduces in a multi-node Docker/regtest setup:
- Are all nodes actually on the same regtest chain? (
bitcoin-cli getblockchaininfoon each — comparebestblockhash.) - Is the bitcoind node mining blocks anyone’s actually connected to, or a fork nobody’s following?
- Are container clocks in sync? Channel timelock logic is sensitive to this in ways that are easy to misdiagnose as a protocol bug.
- Docker volume boundary — is a socket/FIFO file crossing a filesystem translation layer (WSL2, overlay driver) it shouldn’t be?
- Only after all four: assume the bug is actually in the code under test.
This list exists because I’ve burned time on all four before finding the “real” bug.