Documentation / VFX-E-1508

VFX-E-1508

Title

StaleRunEntry

Explanation

cancel_run found nonterminal metadata while the workspace's exclusive MCP claim was free. No MCP server owns that claim, so nothing was signalled. Engine cleanup is unconfirmed: the free claim cannot prove that a crashed server's engine child or its containers are gone.

The server may have been killed before its completing write, or the write may have failed after a verdict was returned. Check stderr for "produced a verdict, but recording its completion failed"; a returned verdict is still valid even when its bookkeeping update was lost.

Startup and pre-run history maintenance now reconcile validated owned orphan records under this same exclusive claim as completed / Inconclusive. The fixed remediationHint explains the interrupted ownership, and finishedAt records reconciliation time, not measured engine completion. The pass never kills an engine, resolves secrets or cleans containers. Existing terminal verdicts are preserved. --keep-run-history disables pruning but retains reconciliation.

Corrupt, unfamiliar, linked or foreign-content entries are preserved; scan/mutation bounds or an unavailable claim can leave work incomplete. Stderr reports bounded maintenance counts and incomplete. Readers (get_run_status, list_runs) never acquire the claim or perform recovery. See run-history settings and limits.

This error is not retryable: repeating cancel_run does not perform recovery or stop an unowned engine child. A later eligible lifecycle maintenance pass may change the record; it does not supply a recovered assertion verdict or certify cleanup.

Common causes

  • The MCP server or machine stopped before the completing registry write.
  • A full disk or permissions change prevented the completing write.
  • Nonterminal evidence was restored from a backup.
  • Bounded maintenance has not reached the entry, or its contents cannot be safely modified.

Fixes

  • Check stderr and the original run result; preserve any verdict that was actually returned.
  • Inspect available events with get_run_events or explain_run; absence of a terminal event is not a pass.
  • Restart the server or begin another run to allow an eligible maintenance pass under the workspace claim.
  • Treat unrecovered assertion results as unknown. Inspect remaining engine resources separately if needed; this MCP bookkeeping pass does not verify or delete them.
  • Start a fresh run_suite if you still need a verdict. Preserve important evidence before automatic retention removes it, or opt out with --keep-run-history.