Skip to content

peers list with zero peers tells the user to upgrade, on the newest node that exists #304

Description

@MichaelTaylor3d

Measured

On dig-node 0.138.0 — the newest build that exists — a node with zero peers prints:

"a per-peer list needs a newer node"

Found on a fresh box during the #923 acceptance run (dig_ecosystem#923), where zero peers was the correct
and expected state at that moment.

Why it clears the bar

The message is false, and it is false in a way that sends the user somewhere useless. The real state is
"this node has no peers". The message says "your node is too old" — so a person acting on it goes
looking for an upgrade that does not exist and cannot help.

This is the honest-surface class: a shipped surface asserting something untrue about the system's own
state. It is not a money or custody lie, so it did not stop the acceptance run — but it is user-visible on
first run, which is exactly when a new user has zero peers and is least able to tell that the advice is
wrong.

Likely shape

A capability/version negotiation returning "unsupported" for a response that is legitimately empty, so
the empty case and the unsupported case share one branch. Worth checking whether the two are distinguishable
at all at the call site — if they are not, the fix is to make them so rather than to reword the string.

Fix

Distinguish no peers from the node cannot answer. An empty peer list should say so plainly. Keep a
genuine version-gap message only where a version gap is actually detected.

Reproduce

Any node with no peers — easiest on a fresh install with the relay unreachable, which is how it was found.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:businessa person can DO something new, or money moves, or a shipped surface stops lying to them

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions