ElementsProject / ElementsProject/lightning

fundchannel reports 'Owning subdaemon openingd died (62208)' on peer disconnect after WIRE_OPEN_CHANNEL

Open
#9,108 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
3.1k
Forks
1k
Avg merge
4d 10h
Merged PRs (30d)
13

Description

### Issue and Steps to Reproduce

When attempting to open a channel to a peer, `fundchannel` fails with the low-level error:

```json
{
"code": -1,
"message": "Owning subdaemon openingd died (62208)",
"data": {
"id": "0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e",
"method": "fundchannel_start"
}
}
```

Command used:

```bash
lightning-cli --lightning-dir=/home/vp/.lightning-experimental/lightning -k \
fundchannel \
id=0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e@164.92.106.32:9735 \
amount=all \
announce=true
```

The relevant logs show that the connection succeeds, `openingd` sends `WIRE_OPEN_CHANNEL`, and then the peer connection is lost while waiting for `accept_channel`:

```text
2026-05-04 23:06:40.354373 plugin-spenderp mfc 8, dest 0: connect 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e.
2026-05-04 23:06:40.830696 connectd Connected out, starting crypto
2026-05-04 23:06:41.248657 connectd peer_out WIRE_INIT
2026-05-04 23:06:41.318478 connectd peer_in WIRE_INIT
2026-05-04 23:06:41.319001 plugin-spenderp mfc 8, dest 0: connect done.
2026-05-04 23:06:41.371062 plugin-spenderp mfc 8, dest 0: fundchannel_start 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e.
2026-05-04 23:06:41.402490 openingd-chan#55 pid 921769, msgfd 95
2026-05-04 23:06:41.403137 openingd-chan#55 funder_channel_start
2026-05-04 23:06:41.403180 openingd-chan#55 Setting their reserve to 128171sat
2026-05-04 23:06:41.403217 openingd-chan#55 peer_out WIRE_OPEN_CHANNEL
2026-05-04 23:06:41.403254 openingd-chan#55 billboard: Funding channel start: offered, now waiting for accept_channel
2026-05-04 23:06:41.986147 openingd-chan#55 Peer connection lost
2026-05-04 23:06:41.986161 chan#55 Owning subdaemon openingd died (62208)
2026-05-04 23:06:41.986173 lightningd peer_disconnected
2026-05-04 23:06:42.026250 plugin-spenderp mfc 8, dest 0: failed! fundchannel_start 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e: {"code":-1,"message":"Owning subdaemon openingd died (62208)"}.
```

There is no `peer_in WIRE_ERROR` in this attempt. So this seems to be a remote disconnect after our `open_channel`, but the RPC error returned to the user is the internal wait status / subdaemon death:

```text
Owning subdaemon openingd died (62208)
```

This is confusing because it looks like `openingd` crashed, while the logs indicate the controlled exit path for peer connection loss.

A previous attempt with `announce=false` against another peer gave a clean remote error:

```text
They sent ERROR channel ...: private channels are not accepted
```

So the issue here is not that every peer policy rejection is opaque; this specific case is a disconnect/EOF surfaced as a subdaemon death.

Expected behavior: `fundchannel` should surface something like:

```text
Peer connection lost while waiting for accept_channel
```

or:

```text
Peer disconnected during fundchannel_start after WIRE_OPEN_CHANNEL
```

rather than:

```text
Owning subdaemon openingd died (62208)
```

I think `62208` is the parent-visible wait status for an exit status of `243` (`0xf3`), i.e. the `status_peer_connection_lost` path, but this leaks an implementation detail to the RPC user.

### `getinfo` output

I am running an experimental build. From the current tree:

```text
git describe: v26.04.1-50-ga7f9aae9f
commit: a7f9aae9f
branch: claude/epic-black
```

`lightningd --version` from this checkout prints:

```text
v25.09
```

I can provide the full exported logs if useful.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.