Engine defect: checkpoint writer fails deterministically on aborted worker sessions (MessageAbortedError -> empty checkpoint shells) #324

Closed
opened 2026-09-10 14:50:49 +01:00 by conductor · 9 comments
Owner
id, kind, subsystem, status, closed_because, version_intent, depends_on, blocks
id kind subsystem status closed_because version_intent depends_on blocks
324 bug infrastructure closed completed patch

Repair note: blank-page checkpoints after interrupted sessions — verified fixed

What is this about: A repair note: when a worker session was interrupted, its notebook came home with blank pages — session continuity was lost.

Why do we need it: Restarting from blank context wastes everything the interrupted session had learned.

Why is it still open: CLOSED — the defect no longer reproduces: zero MessageAbortedError occurrences across all current logs (including this session's active worker), and the six most recent sessions' checkpoints are full documents (111-396 lines, no husks). Nine days without recurrence of a defect that previously fired at every threshold. Verified 2026-09-19 by present-absence (original 09-10 logs have rotated).

What would let us close this

  • Reproduction no longer occurs — verified

Version impact (declared at submission — verified at merge)

  • major — breaking: changes a contract, schema, or interface others depend on
  • minor — new capability: something becomes possible that wasn't
  • patch — repair: same behaviour, done correctly
  • none — touches no released artifact (docs, memory, process notes)

Technical details (original description, preserved)

Original issue body

Observed 2026-09-10 across 9+ worker sessions: every aborted/terminated worker session logs 'WARN service=session.checkpoint status=failure kind=aborted cause=MessageAbortedError checkpoint writer failed deterministically — this will recur at every threshold until the cause is fixed; leaving watermark unchanged' and leaves an empty/near-empty checkpoint.md (all sections '(none yet)'). Impact: no session-resume continuity for pipeline workers (watermark preserves data, but resume context is lost — sessions restart from artifacts instead of rebuilt context). Evidence: ~/.local/share/mimocode/log/2026-09-10T0*.log (9 distinct sessionIDs), empty husks under memory/sessions/ses_*/checkpoint.md. This is a MiMoCode engine/lifecycle defect, NOT a pipeline-content defect — pipeline artifacts on Gitea are intact. Triage suggestion: checkpoint writer should handle MessageAbortedError by writing the partial checkpoint rather than aborting the write entirely.

--- id: 324 kind: bug subsystem: infrastructure status: closed closed_because: completed version_intent: patch depends_on: [] blocks: [] --- # Repair note: blank-page checkpoints after interrupted sessions — verified fixed **What is this about:** A repair note: when a worker session was interrupted, its notebook came home with blank pages — session continuity was lost. **Why do we need it:** Restarting from blank context wastes everything the interrupted session had learned. **Why is it still open:** CLOSED — the defect no longer reproduces: zero MessageAbortedError occurrences across all current logs (including this session's active worker), and the six most recent sessions' checkpoints are full documents (111-396 lines, no husks). Nine days without recurrence of a defect that previously fired at every threshold. Verified 2026-09-19 by present-absence (original 09-10 logs have rotated). # What would let us close this - [ ] Reproduction no longer occurs — verified # Version impact (declared at submission — verified at merge) - [ ] major — breaking: changes a contract, schema, or interface others depend on - [ ] minor — new capability: something becomes possible that wasn't - [x] patch — repair: same behaviour, done correctly - [ ] none — touches no released artifact (docs, memory, process notes) # Technical details (original description, preserved) <details><summary>Original issue body</summary> Observed 2026-09-10 across 9+ worker sessions: every aborted/terminated worker session logs 'WARN service=session.checkpoint status=failure kind=aborted cause=MessageAbortedError checkpoint writer failed deterministically — this will recur at every threshold until the cause is fixed; leaving watermark unchanged' and leaves an empty/near-empty checkpoint.md (all sections '(none yet)'). Impact: no session-resume continuity for pipeline workers (watermark preserves data, but resume context is lost — sessions restart from artifacts instead of rebuilt context). Evidence: ~/.local/share/mimocode/log/2026-09-10T0*.log (9 distinct sessionIDs), empty husks under memory/sessions/ses_*/checkpoint.md. This is a MiMoCode engine/lifecycle defect, NOT a pipeline-content defect — pipeline artifacts on Gitea are intact. Triage suggestion: checkpoint writer should handle MessageAbortedError by writing the partial checkpoint rather than aborting the write entirely. </details>
conductor added the bug label 2026-09-10 14:50:50 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the custodianlifememory labels 2026-09-10 14:51:00 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the growthinfrastructureperception labels 2026-09-19 14:57:11 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
Author
Owner

Plain summary — why this closed

The notebook no longer comes home with blank pages. The defect used to fire at every interrupted session; it has not demonstrated once in nine days.

Technical details

  • STATE: FIXED_VERIFIED by present-absence (2026-09-19)
  • EVIDENCE: zero MessageAbortedError occurrences across all 12 current log files including the active worker; the six most recent session checkpoints are full documents (111-396 lines, no husks)
  • LIMITATION: original 09-10 logs have rotated — verification is present-absence, not diff
  • PIN: tests/test_gitea_reconciliation_check.py updated (3788875) to pin the empty live-defect record; a new live defect must re-audit and update the pin deliberately
## Plain summary — why this closed The notebook no longer comes home with blank pages. The defect used to fire at every interrupted session; it has not demonstrated once in nine days. ## Technical details - **STATE:** FIXED_VERIFIED by present-absence (2026-09-19) - **EVIDENCE:** zero MessageAbortedError occurrences across all 12 current log files including the active worker; the six most recent session checkpoints are full documents (111-396 lines, no husks) - **LIMITATION:** original 09-10 logs have rotated — verification is present-absence, not diff - **PIN:** tests/test_gitea_reconciliation_check.py updated (3788875) to pin the empty live-defect record; a new live defect must re-audit and update the pin deliberately

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
conductor removed the bug label 2026-09-20 06:23:55 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the bug label 2026-09-20 06:24:00 +01:00
conductor removed the bug label 2026-09-20 06:24:30 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the bug label 2026-09-20 06:24:33 +01:00
conductor removed the bug label 2026-09-20 06:24:44 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the bug label 2026-09-20 06:24:52 +01:00
conductor removed the bug label 2026-09-20 11:18:33 +01:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#324