Files
narratio/docs/troubleshooting.md

10 KiB

Troubleshooting

Purpose

Canonical operator troubleshooting guide for recurring implemented Narratio failures.

Config file discovery failure

Symptom:

  • run, plan, resume, run-stage, or restore fails with config/session not found.

Likely Cause:

  • pipeline.yml, campaign.yml, or session.yml is missing from system discovery paths.
  • a local working-directory config file was not passed explicitly.

Diagnostics:

ls -l /usr/local/etc/narratio/pipeline.yml /etc/narratio/pipeline.yml
ls -l /usr/local/etc/narratio/campaign.yml /etc/narratio/campaign.yml
ls -l /usr/local/etc/narratio/session.yml /etc/narratio/session.yml

Safe Fix:

  • pass explicit --config, --campaign, and --session.
  • or place files in documented discovery paths.

Links:

Templated session file rejected

Symptom:

  • load fails with a message that session.yml must be concrete.

Likely Cause:

  • a template authoring file such as session.template.yml was passed to --session or uploaded as remote session.yml.
  • session.yml still contains {{ ... }} placeholders.

Diagnostics:

narratio plan --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session ./session.yml --session-id 2026-04-04

Safe Fix:

  • generate concrete YAML with narratio session init.
  • pass the generated concrete session.yml to downstream commands or upload it through session init --remote.

Links:

Strict YAML decode or validation failure

Symptom:

  • config load fails with unknown field or validation error.

Likely Cause:

  • typo/stale field name.
  • missing required fields or invalid constraints.

Diagnostics:

narratio plan --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04

Safe Fix:

  • align fields/values to canonical config reference and examples.

Links:

--artifacts selection failure

Symptom:

  • run/resume/run-stage fails with invalid or unknown artifact selection.

Likely Cause:

  • --artifacts contains blank names or unknown artifact keys.
  • pipeline.scriptorium.artifacts missing while using --artifacts.

Diagnostics:

narratio run --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --artifacts player_handout

Safe Fix:

  • use configured artifact keys only.
  • ensure pipeline.scriptorium.artifacts is defined.

Links:

run-stage --artifacts on non-analyze stage

Symptom:

  • run-stage fails with --artifacts is only supported for stage "analyze".

Likely Cause:

  • --artifacts was used with a non-analyze stage.

Diagnostics:

narratio run-stage --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --artifacts session_recap polish

Safe Fix:

  • use --artifacts only with run-stage ... analyze.

Links:

Configured artifact dependency/input validation failure

Symptom:

  • config validation fails for depends_on, narratio.artifact.<name> source, or artifact output path.

Likely Cause:

  • narratio.artifact.<name> source missing matching depends_on key.
  • dependency references unknown artifact key.
  • dependency self-reference or enabled dependency cycle.
  • artifact output path missing/invalid/outside artifacts/ root.

Diagnostics:

narratio plan --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04

Safe Fix:

  • ensure artifact-to-artifact inputs have explicit depends_on entries using artifact keys.
  • ensure referenced artifacts exist and define valid output_path values.
  • keep output paths relative and under artifacts/.

Links:

Required configured artifact input unavailable at analyze time

Symptom:

  • analyze fails because configured input source is unavailable.

Likely Cause:

  • required upstream configured artifact was not selected/executed this run.
  • non-executable dependency output file is missing or invalid on disk.

Diagnostics:

narratio status --manifest /path/to/manifest.json
narratio run-stage --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --artifacts player_handout analyze

Safe Fix:

  • run analyze with needed artifacts selected.
  • or ensure dependency output file exists at configured path and is valid.

Links:

Manifest/status path failure

Symptom:

  • status fails because manifest path is missing, unreadable, or invalid.

Likely Cause:

  • wrong manifest path.
  • manifest removed after cleanup.
  • --manifest omitted.

Diagnostics:

narratio status --manifest /path/to/manifest.json
ls -l /path/to/manifest.json

Safe Fix:

  • use manifest path printed by run, resume, or run-stage.

Links:

Session lock conflict (.lock)

Symptom:

  • run, resume, run-stage, or restore fails with lock conflict for session workdir.

Likely Cause:

  • another Narratio process is running same session.
  • stale lock from interrupted prior run.

Diagnostics:

ls -l {workspace.root}/work/{campaign}/{session_id}/.lock
cat {workspace.root}/work/{campaign}/{session_id}/.lock
ps aux | grep narratio

Safe Fix:

  • wait for active process to finish.
  • if no process is active, remove only stale session .lock file.

Links:

Restore remote current pointer or manifest missing

Symptom:

  • restore fails with remote current pointer or current manifest errors.

Likely Cause:

  • current/run_id.txt was never published.
  • current/manifest.json is missing for the session prefix.
  • archive commit did not complete.

Diagnostics:

narratio restore --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --dry-run

Safe Fix:

  • verify archive stage succeeded for the target session.
  • rerun/archive from a healthy source workspace so current pointers are published.

Links:

Restore manifest identity mismatch

Symptom:

  • restore fails because remote manifest session or campaign does not match requested values.

Likely Cause:

  • wrong --session-id or wrong session config selected.
  • archive prefix points to a different campaign/session.

Diagnostics:

narratio restore --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --dry-run

Safe Fix:

  • use the correct session config and --session-id.
  • verify campaign/session identity in local config before restore.

Links:

Restore conflict without --force

Symptom:

  • restore fails with restore conflict and conflict counts.

Likely Cause:

  • local durable file differs from remote file for one or more planned restore paths.

Diagnostics:

narratio restore --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 --dry-run

Safe Fix:

  • review planned conflicts.
  • rerun with --force only when remote state should overwrite local state.

Links:

Restore report expectations

Symptom:

  • operator expects restore report file but does not find one.

Likely Cause:

  • restore was executed in --dry-run mode.
  • restore failed before report persistence path (for example lock acquisition failure).

Diagnostics:

ls -l {workspace.root}/work/{campaign}/{session_id}/reports/restore-latest.json

Safe Fix:

  • run non-dry-run restore for durable report output.
  • resolve lock or early preflight failures and retry.

Links:

Secrets env-dir or credential-env failure

Symptom:

  • startup fails loading secrets directory, or stage fails due to missing credential env vars.

Likely Cause:

  • invalid pipeline.secrets.env_dir path/permissions.
  • required credential env var unset/empty.

Diagnostics:

ls -la /path/to/secrets_dir
env | grep -E 'AUDITA|OBJECT_STORAGE|AWS|SCRIPTORIUM'

Safe Fix:

  • fix secrets directory and credential env vars.
  • keep secret values out of YAML.

Links:

S3-audio prepare failure

Symptom:

  • prepare fails in S3 mode (listing/downloading/no audio/backend error).

Likely Cause:

  • wrong session.inputs.audio_s3.prefix.
  • no .flac files at resolved prefix.
  • invalid/missing object-store credentials or backend config.
  • mixed local+S3 audio input config.

Diagnostics:

narratio run-stage --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 prepare

Safe Fix:

  • configure exactly one audio source mode.
  • verify .flac files and storage access.

Links:

Archive promotion/current-pointer failure

Symptom:

  • archive fails on required promotion source missing or pointer write failure.

Likely Cause:

  • required promoted file absent (including analyze outputs not generated for this run).
  • storage upload failed before current/run_id.txt commit marker write.

Diagnostics:

narratio status --manifest /path/to/manifest.json
narratio run-stage --config /path/to/pipeline.yml --campaign /path/to/campaign.yml --session /path/to/session.yml --session-id 2026-04-04 archive

Safe Fix:

  • rerun or resume upstream stages to generate required files.
  • adjust promotion source/dest rules to match artifacts that must exist.
  • retry after storage issue is resolved.

Links: