Diagnostic Checklist
Before diving into a specific issue, run these four commands in order. They surface 80% of problems immediately.1
Check system status
RUNNING, PAUSED, STOPPED, CIRCUIT_BREAKER_TRIPPED), sprint state (IN_PROGRESS, CHECKPOINT, COMPLETED), registered agents, and task summary. If mode is not RUNNING or sprint is not IN_PROGRESS, that is likely your root cause.2
Validate state
.liza/state.yaml. Validation errors include the field name, task ID, and a description of the violated rule. Fix errors before restarting agents.3
Inspect agent output logs
.err files for provider startup failures.4
Open the TUI
LIZA_AUTO_REPAIR_AGENT_POOL is enabled (the default).Issue Categories
Agent Issues
Agent Issues
COLLISION: agent already registered
Error:state.yaml until the lease expires.Fix — recover and respawn in one command:registered until <timestamp>). After that time, registration succeeds automatically.Prevention: Use liza pause before stopping agents. Paused agents exit gracefully at their next heartbeat check rather than being killed mid-operation.Agent timeout (execution exceeds time limit)
Symptoms:- Agent shows
WORKINGorREVIEWINGstatus for an extended period - Logs contain:
Agent execution timeout (CLI may be hung, will retry) - Agent status automatically resets to
IDLEafter timeout
Expected behavior: The supervisor kills the CLI process, resets the agent to
IDLE, and retries after a 5-second delay. A single timeout is self-recovering — you do not need to intervene.When to investigate: If the same task causes repeated timeouts, the underlying task or test is problematic. Check .liza/agent-prompts/ for the agent’s last bootstrap prompt and .liza/agent-outputs/ for what it was attempting. If timeouts recur on the same task, mark it blocked:Agent stuck in loop, not claiming tasks
Diagnosis:Agent stuck in WORKING state
Ghost agent (registered but process is dead)
Diagnosis:Task stuck in BLOCKED state
Symptoms: A task shows statusBLOCKED. Agents skip it. No agent claims it.Diagnosis:depends_on target is directly MERGED, unblock the task:liza analyze will catch repeated BLOCKED patterns as a circuit breaker signal.Lock & Concurrency Issues
Lock & Concurrency Issues
Liza uses file-based locking (
Fixes by cause:
Free space:
Fix — correct ownership:Common causes: Running
flock) for safe concurrent state access. Lock errors include a classified type to help you target the right fix.Lock error classification
Lock timeout — failed to acquire lock
Diagnosis:The
.lock file and .lock.owner.json may remain on disk after a successful operation — their presence alone does not mean a lock is currently held. flock is the mutual exclusion mechanism; file presence is diagnostic metadata only. Do not delete lock files based on PID metadata alone without confirming no liza process is running.Disk full
Permission denied on lock file
liza as root and then as a regular user, or NFS mounts with restrictive permissions.”State modified by another process, retry”
This message is normal and expected. Liza uses a three-phase claim pattern that detects write races and retries automatically. If you see this message persisting, too many agents may be competing for the same tasks — reduce parallel agents per role.State Validation Failures
State Validation Failures
Run
Fix — retarget the offending dependency:
Or update the
liza validate to get the exact rule that failed and the task or agent ID involved. Most validation failures have a targeted fix.Missing required field
Error:INVALID: missing required field 'sprint'Cause: The state file was manually edited, created with an old liza init, or truncated.Fix: Add the missing section according to the blackboard schema. Use liza validate to confirm which fields are missing, then add them. Prefer using a Liza CLI command for the change when one exists rather than editing state.yaml directly.Task status invariant violation
Error:INVALID: IMPLEMENTING_CODE task without assigned_to: task-1Tasks in executing states must have assigned_to, worktree, and a valid lease_expires. Tasks in reviewing states must have reviewing_by and review_commit.Fix — reset to initial pipeline state:Run liza validate to identify the violated invariant, then either:- Use
liza recover-task <task-id>to reset the task cleanly, or - Run
liza migrateto normalize role names and fix common invariant violations from version mismatches
Circular dependency detected
Identify the cycle:Spec file not found
Fix — create the spec file:spec_ref field on the task using liza validate to find the task ID, then use line-level text edits (not a YAML serializer) to update the reference.Worktree Issues
Worktree Issues
Worktree directory not found
Error:INVALID: IMPLEMENTING task <task-id> has worktree=.worktrees/<task-id> but directory does not existFix — recreate the worktree:Worktree already exists
Branch already checked out / cannot remove worktree
Worktree directory is dirty
Invalid reference: task/<task-id>
The task branch does not exist in git.Integration Issues
Integration Issues
Integration branch missing
The integration branch is created byliza init. If it is missing, recreate it:liza init or manually set the branch reference in .liza/state.yaml if the integration branch name differs from the default.Task marked INTEGRATION_FAILED
When an approved task’s merge to the integration branch fails due to a conflict or test failure, Liza transitions the task toINTEGRATION_FAILED, aborts the merge, and preserves the worktree for resolution.Diagnosis:- Edit files with conflict markers (
<<<<<<</=======/>>>>>>>) - Stage and commit the resolution
- Claim the task as a coder with
integration_fix: true - Resubmit for review
- Run your test suite inside the worktree:
go test ./...(or equivalent) - Fix the failing tests and commit
- Claim the task and resubmit for review
Initialization Issues
Initialization Issues
Error: .liza already exists
Option 1 — continue with existing state: Just start your agents. Liza is stateful; the existing.liza/ directory contains your sprint history.Option 2 — reset completely:Symlink creation fails on Windows
Error:Fix — enable Developer Mode (recommended):
Settings → System → For developers → toggle Developer Mode on. Then re-run
liza setup and liza init.Fix — run elevated:
Open your terminal as Administrator and re-run the command.WSL2 is the recommended environment for Liza on Windows. Native Windows support is limited by the symlink restriction. Using WSL2 eliminates this issue entirely.
Error: specs/vision.md required
Performance Issues
Performance Issues
30-second or longer response delays
Cause:fsnotify does not work reliably on network filesystems (NFS, SMB). Agents fall back to 30-second polling.Fix: Move your project to a local filesystem. If that is not possible, accept the polling delay and adjust your heartbeat_interval configuration accordingly.Also check:Slow state file reads (>50ms)
Slow task claims (5–10 seconds)
Git worktree operations are slow on large repositories.Fix: Use an SSD. For very large repos, consider sparse checkout:Validation takes more than 5 seconds
Large task lists or complex dependency graphs slow validation.Provider Quota & Availability Issues
Provider Quota & Availability Issues
Provider quota exhausted
Symptoms: All agents using a provider stop. System mode is stillRUNNING. Signal file .liza/provider-quota-exhausted-<provider> exists.Diagnosis:liza resume alone fails if the system is still RUNNING. You must pause first to transition to PAUSED, then resume to clear quota signals.Provider unavailable
Symptoms: Agents stop before doing useful work. Signal file.liza/provider-unavailable-<provider> exists. .liza/agent-outputs/*.err shows startup errors.Fix:- Repair the provider environment (for Codex: ensure
~/.codex/sessionsis accessible) - Run
liza pauseandliza resumeto clear the signal
Circuit breaker tripped
Symptoms: System mode isCIRCUIT_BREAKER_TRIPPED. Sprint is at CHECKPOINT. liza analyze reports the triggering pattern.Fix:- Read the circuit breaker report in
.liza/ - Investigate the root cause (crash loop, validation failure, repeated integration conflicts)
- Fix the underlying issue
- Resume to clear the breaker:
liza resume clears a tripped circuit breaker (status: OK, current_trigger: null), historical anomalies that triggered it are acknowledged. Future liza analyze runs count only anomalies after the latest cleared trigger.Getting Help
If the above steps do not resolve your issue, generate a debug report to share with support or your team.1
Generate a debug report
2
Capture liza status output
3
Capture liza validate output
4
Check activity and alert logs