Documentation / VFX-E-1004

VFX-E-1004

Title

EventsFileNotFound

Explanation

The run events file this call needed does not exist — the path explain_run/diagnose_run was pointed at, or the path the run registry recorded for the runId get_run_events was given. Kept distinct from VFX-E-1002 (a missing suite file) rather than sharing one code with it, because the remediation differs: a missing suite means fix the suite path, while a missing events file means the run itself needs to be (re-)produced first.

Common causes

  • eventsPath points at a file that was never written — run_suite has not completed yet, or wrote to a different location than expected.
  • The run's events file was cleaned up (temp-file garbage collection, or a manual cleanup script) before explain_run/diagnose_run was called.
  • A typo in a manually supplied eventsPath.
  • For get_run_events: the runId IS in the run registry, but the events file that entry names has since been deleted — a run's metadata outlives its event stream when the output directory is cleaned.
  • For get_step_timeline: the same condition, for the same reason — it reads the run's events file through the same reader, so a swept stream refuses there identically.
  • Not get_run_artifacts: that tool reports the same swept file as reports.events.available: false plus a gaps entry, because for an artefacts inventory the events file is one input of three rather than the whole answer.
  • The run was recorded by a --workspace server and the workspace's output directory was wiped, leaving the registry entries but not their streams.

Fixes

  • Omit eventsPath to let explain_run/diagnose_run default to the most recent finished run in the run registry.
  • Run the suite with run_suite and use the eventsFilePath it returns directly, without retyping it.
  • Confirm the file exists on disk before retrying with an explicit eventsPath.
  • For get_run_events and get_step_timeline: this is not the same as an unknown runId (that is VFX-E-1505) — the run existed, so re-run the suite rather than hunting for a different id.
  • Call get_run_artifacts for the run instead: it succeeds over a swept stream and tells you the path the registry recorded, which is what you need to work out where the file went.
  • Stop cleaning the workspace output directory between the run and the read, or read the events before the cleanup runs.