diff --git a/doc/run-log-events.md b/doc/run-log-events.md index d3ba5d85fa4..161edb0bae5 100644 --- a/doc/run-log-events.md +++ b/doc/run-log-events.md @@ -995,3 +995,6 @@ long cause chains stop at the same four-object limit. This only improves the recorded cause. Event acknowledgement, replay integrity, the bounded stall policy, and operator recovery requirements stay unchanged. + +A later successful continuation does not establish the cause of an earlier +failure that recorded only `Error`. diff --git a/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts b/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts index afbe4839f43..9b78311876a 100644 --- a/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts +++ b/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts @@ -1538,6 +1538,8 @@ it.each([ expect(onProtocolIntegrityError).toHaveBeenCalledOnce(); const failure = onProtocolIntegrityError.mock.calls[0]![0] as Error; expect(failure).toMatchObject({ reason: "runner_event_commit_stalled", detail: `${code} at source seq 1` }); + expect(core.store.state.ackedSourceSeq).toBe(0); + expect(core.store.state.committedEvents).toHaveLength(0); expect(failure.message).toContain("runner_event_commit_stalled"); expect(failure.message).not.toContain("private-host-fixture"); expect(failure.message).not.toContain("private query");