Quick status check
Run these commands to get a quick overview of system health:Agent not responding
Symptoms
Messages sent to the agent receive no response.Diagnosis
Check if containers are being spawned
Solutions
Trigger word not matching
Trigger word not matching
Verify the trigger word in your message matches the configured trigger:The trigger is case-insensitive and must appear at the start of the message.
Container runtime not available
Container runtime not available
Ensure Docker is running:If Docker is not running, start it:
- macOS: Open Docker Desktop
- Linux:
sudo systemctl start docker
Queue at concurrency limit
Queue at concurrency limit
Check if the queue is blocked:Stop stuck containers:
Container timeout
Symptoms
- Logs show
Container timeoutortimed out - Exit code 137 (SIGKILL) in container logs
- Messages are lost after timeout
Diagnosis
Solutions
Increase timeout for specific group
Increase timeout for specific group
Modify the group’s
containerConfig in the database:Check for infinite loops
Check for infinite loops
Review the container log to see if the agent is stuck:Look for repeated patterns or lack of progress. If the agent is stuck, consider:
- Simplifying the prompt
- Adding constraints to the task
- Reviewing recent changes to
CLAUDE.md
Adjust idle timeout
Adjust idle timeout
The idle timeout (for graceful shutdown between messages) is currently equal to the hard timeout. This is a known issue. To fix:Edit Then rebuild:
src/config.ts and set:Known issues
Cursor rollback on error
The message cursor (lastAgentTimestamp) is now rolled back on container errors, provided no output was already sent to the user. If the agent fails after sending partial output, the cursor is not rolled back to prevent duplicate messages.
If you need to manually reset the cursor, update it in router_state:
IDLE_TIMEOUT and CONTAINER_TIMEOUT
The hard timeout is calculated asMath.max(configTimeout, IDLE_TIMEOUT + 30_000), ensuring a 30-second gap for graceful _close sentinel shutdown before the hard kill fires. With default settings (both 30 minutes), the hard timeout is 30 minutes 30 seconds.
If containers are consistently hitting the hard timeout, consider lowering IDLE_TIMEOUT in src/config.ts to a shorter value (e.g., 5 minutes) so idle containers exit more promptly.
Resume branches from stale tree position
Issue: When agent teams spawns subagent CLI processes, they write to the same session JSONL. On subsequentquery() resumes, the CLI reads the JSONL but may pick a stale branch tip, causing responses to land on a branch the host never receives.
Fix: Already fixed. The agent runner now passes resumeSessionAt with the last assistant message UUID to explicitly anchor each resume.
WhatsApp authentication issues
Symptoms
- Logs show “QR” or “authentication required”
- No messages are being received
- Connection repeatedly drops
Diagnosis
Solution
Re-authenticate with WhatsApp:Container mount issues
Symptoms
- Agent cannot access expected files or directories
- Logs show “Mount validated” or “Mount REJECTED”
- Permission errors in container logs
Diagnosis
Solutions
Add path to mount allowlist
Add path to mount allowlist
Edit Then restart the service.
~/.config/nanoclaw/mount-allowlist.json:Check for symlinks
Check for symlinks
The mount security system resolves symlinks before validation. If you’re mounting a symlink, ensure the resolved path is in the allowlist:
Verify file permissions
Verify file permissions
Containers run as the host user (or uid 1000 on some systems). Ensure the host user can read the mounted directories:
Test mount manually
Test mount manually
Run a test container to verify mounts:
IPC issues
Symptoms
- Messages sent via IPC don’t appear in the chat
- Tasks don’t get scheduled
- IPC files accumulate in
data/ipc/{group}/
Diagnosis
Solutions
Check IPC authorization
Check IPC authorization
Verify JSON format
Verify JSON format
IPC files must be valid JSON. Check for syntax errors:
Test IPC manually
Test IPC manually
Write a test message:
Session branching issues
Symptoms
- Agent responses don’t appear in the conversation
- Session transcript shows multiple branches
- Concurrent CLI processes in session debug logs
Diagnosis
Solution
This issue was fixed by passingresumeSessionAt with the last assistant message UUID. If you’re still experiencing it, ensure you’re running the latest version of the agent runner.
Service management
Restart the service
View live logs
Stop the service
Start the service
Rebuild after code changes
Getting help
If you’re still experiencing issues:-
Ask Claude Code directly: Run
claudeand describe the problem. Claude can read logs, check database state, and diagnose issues. -
Run the debug skill:
claude→/debugfor guided troubleshooting. - Check the Discord: Join the community for help from other users.
-
Review recent changes: If the issue started after a customization, review what changed:
Related pages
- Security model - Authorization and isolation
- IPC system - Inter-process communication
- Container runtime - Container execution details