Skip to content

Tangle session events arrive without a stable id, killing a run's children in bursts #1205

Description

@drewstone

What happens

mech-interp-foundations-astra-20260911f has lost 6 of 123 children, every one to the same cause:

infra: retained provider execution requires reconciliation before replacement:
  caused by Error: Tangle session event arrived without a stable id

The provider emitted a session event with no id, the client refused it, and the refusal surfaced through the retained-execution path.

The distribution is the interesting part

child spawned label
s74 01:15:28 prior-art:transformer-circuits:tc-2022-solu-design-for-i…
s80 01:33:34 prior-art:arc-theory:arxiv-2410.01290:p4-approx-accurate
s114 03:31:54 prior-art:arc-theory:arxiv-2410.07476:p7-compact-proofs-
s115 03:31:54 prior-art:mi-open-problems:url-transformer-circuits.pub-
s116 03:32:09 prior-art:mi-open-problems:url-transformer-circuits.pub-
s117 03:35:57 prior-art:mi-open-problems:url-transformer-circuits.pub-

Two things stand out:

  1. Every one is a prior-art child. 123 children of this run span enumerate, extract, review, distill and prior-art stages; the failure has touched only the last. Whatever a prior-art child does differently (these fetch and read external sources, several of them web URLs) correlates perfectly with the fault.
  2. Four of the six land inside four minutes (03:31:54, 03:31:54, 03:32:09, 03:35:57), after two isolated cases two hours earlier. That is a burst, not a steady rate, which suggests a provider-side condition rather than per-child randomness.

Run is on agent-runtime 0.218.2 (the worktree has since moved to 0.219.0; the running process kept the code it loaded).

Why it matters beyond six children

Each one is a paid worker slot and a research task lost. More importantly the reason an operator reads says "reconciliation" when nothing needs reconciling — see #1204, of which this is exhibit 3. This issue is the specific cause; #1204 is the argument that it should not be wearing that reason at all.

What would help

An event with no id is the provider breaking its own identity contract. Two asks, in order of value:

  1. Do not lose the child to it. If a single event is unusable, the stream around it may still be. Dropping the event with a recorded gap, or requesting replay from the last known-good cursor, would both be better than failing the execution.
  2. Name the fault. provider emitted a session event with no id as the settled reason, with the session and turn, so the next reader does not have to reach for the journal to learn it was not a reconciliation problem.

Evidence retained at discovery-lab@master:pursuits/mech-interp-foundations-astra-20260911f once the run settles; the journal and disco report output are the source for the table above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions