Skip to content

Funds stuck in AwaitingChannelReady for hours — cannot abandon/shutdown; restart only adds failure detail (reproduced twice with same peer) #1560

Description

@chukwuma619

Summary

On fnn 0.8.1, a channel can stay in:

AwaitingChannelReady(OUR_CHANNEL_READY)

for hours after funding is confirmed on-chain, never transitioning to ChannelReady.

While stuck:

  • abandon_channel is rejected (“please shutdown the channel instead”)
  • shutdown_channel (cooperative) is rejected (invalid state)
  • shutdown_channel(force=true) is rejected (invalid state)

I then restarted the node hoping it would recover. After restart, the channel was still stuck, and list_channels started showing:

failure_detail: "Peer disconnected during channel opening"

So that failure string is a post-restart symptom, not the original reason the open got stuck. Before restart, the channel was already stuck in AwaitingChannelReady with no recovery path.

Related: #1545, #606, #996.

Environment

  • Network: CKB testnet
  • fnn: 0.8.1

Timeline (current incident)

  1. Opened a public channel with peer 03bf42…7b10 (I already had 3 Ready channels with this peer).
  2. Funding confirmed on-chain.
  3. Local state stayed in AwaitingChannelReady(OUR_CHANNEL_READY) and did not become Ready after waiting ~2+ hours.
  4. Tried recovery RPCs while still in that state — all failed (see below).
  5. Restarted fnn to see if state would heal.
  6. After restart: still stuck in AwaitingChannelReady; now also shows failure_detail: "Peer disconnected during channel opening".
  7. Peer is currently connected again (list_peers); reconnect + retry shutdown still fails.

Pattern I observed (hypothesis)

Same remote peer both times:

  • Peer pubkey: 03bf4208b9ada97a5589ef9924819fe511b2a5e9ed3812df21a79435d39a147b10
  • Peer multiaddr: /ip4/49.13.159.45/tcp/8228/p2p/Qmc9gzZB7aHYrVNxpakaQ8mLFchnnkesLhDfPPJEHQNbPt

In my cases this correlates with ~100k CKB aggregate capacity already open / opening with this peer (hypothesis only):

  1. First wallet — large opens stuck (~100k + ~50k).
  2. Second wallet — opened smaller channels bit-by-bit. First three became ChannelReady (~20k + ~30k + ~50k ≈ 99,703 CKB). A fourth ~50k channel then stuck the same way.

This is not “first channel with peer fails”; Ready channels with the peer already existed when the latest one got stuck.

Incident A — first wallet (earlier)

My node pubkey
03ea6d62f0dab7a9a4e1162f7f7a19b78db9d908468728ae5e2407713cbb09f0e6

Announced address
/ip4/197.211.63.22/tcp/8228/p2p/QmPWAqZUFxYwjH3b9VKT1P9Nh6cQMCbvqHUBxzqVjxkD8i

Stuck channels (fnn 0.8.1). Funding confirmed; both AwaitingChannelReady with OUR_CHANNEL_READY|CHANNEL_READY. After restart attempts, failure detail was also Peer disconnected during channel opening.

  1. ~100k CKB

    • channel_id: 0x7cc479b706ce66e322c1c2dcacc2ca278e93d56c43eb31162a14046057457418
    • funding tx / outpoint: 0x852fac88c14602d51256511ecf7603706ac75fbb7f7219fab25377bc943f1dc1:0
    • created: 2026-07-10 01:30:15 UTC
  2. ~50k CKB

    • channel_id: 0x39c4c7e014f77cccc837ebc1c52c4e3842b1bdd8df07d4154933da48224dbe6c
    • funding tx / outpoint: 0x92a701c9c394f69a2f69305c7dd96858f7957e8a2dbc5411e628764c44ae67ae:0
    • created: 2026-07-10 01:41:06 UTC

I then created a new wallet / new Fiber node and tried again with smaller opens.

Incident B — current wallet (reproduced)

My node pubkey
0340bd6865d097df1b8b9c423d37aadc215d4c0e582184f0ddeb71ff3cd8a875e5

Working channels with the same peer (all ChannelReady)

Capacity channel_id created (UTC)
19901 CKB 0x87dd4362ad8ee82d984d11c08df72e1c13e1667e450491c7a42a8d3f1855d334 2026-07-10 12:29:18
29901 CKB 0x67e32c9112afad1c21650846c5c5ae2b5012144f271b55017db61fa8e2a978b7 2026-07-10 12:30:45
49901 CKB 0x2b0333d6b9179a69aeaca576a7f847db71589fdde2fb8f80801aa9cbfca2c49c 2026-07-10 12:33:05

Ready total with peer ≈ 99,703 CKB.

Stuck channel

  • channel_id: 0x897620a461ba4b80e6c3fa6ae4f30f909d9ea765737fc14a627eed2519404026
  • state: AwaitingChannelReady / flags OUR_CHANNEL_READY|CHANNEL_READY
  • failure (after node restart): Peer disconnected during channel opening
  • local balance / capacity: 49901 CKB (remote 0)
  • funding outpoint: 0xe66cc8817dad46a3af920192cf17eadb9211fa4d49c849815d6895838bde6d70:0
  • funding tx (confirmed): https://testnet.explorer.nervos.org/transaction/0xe66cc8817dad46a3af920192cf17eadb9211fa4d49c849815d6895838bde6d70
  • latest commitment tx hash: 0x09e2353ea3909e29637bc6d2b4aacb247d6a0e55f17f89f05e7fbfe59d905282
  • created: 2026-07-10 12:37:30 UTC
  • is_public: true, is_acceptor: false

RPC errors (while stuck / after restart)

abandon_channel:
Invalid parameter: Channel ... is in state AwaitingChannelReady(AwaitingChannelReadyFlags(OUR_CHANNEL_READY)), cannot be abandoned, please shutdown the channel instead

shutdown_channel (force=false):
Invalid state: Trying to send shutdown message while in invalid state AwaitingChannelReady(AwaitingChannelReadyFlags(OUR_CHANNEL_READY))

shutdown_channel (force=true):
Invalid state: Handling force shutdown command invalid state AwaitingChannelReady(AwaitingChannelReadyFlags(OUR_CHANNEL_READY))

Impact

  • Funding is confirmed on-chain.
  • Waiting hours does not complete ChannelReady.
  • Shutdown/abandon are both blocked.
  • Node restart does not recover funds; it only surfaces a disconnect failure detail.
  • Result: CKB locked with no supported retrieval path from portable/production 0.8.1 RPC.

Happy to provide more logs if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions