Common Issues
The quickest fixes for the most frequent problems.
1. Daemon won't start — port in use
# Find what's using port 4200
lsof -i :4200
# Kill it, or use a different port
hoziron start --listen 0.0.0.0:4201
2. Config validation error on startup
# Show current config
hoziron config show
# Fix a specific field
hoziron config set server.listen "0.0.0.0:4200"
# Or edit directly
hoziron config edit
3. Permission denied in container
The container runs as UID 65532 (distroless nonroot). Ensure the volume is writable:
# Docker
docker run -v hoziron-data:/data ...
# Or with explicit ownership
docker run -v ./local-data:/data --user 65532:65532 ...
In Kubernetes, set fsGroup:
securityContext:
fsGroup: 65532
4. Provider key not working
# Test the key
hoziron config test-key anthropic
# Verify the env var is set
echo $ANTHROPIC_API_KEY
# Re-set it
hoziron config set-key anthropic
Keys are resolved at request time — if you changed the env var, restart the daemon if it was set before the process started.
5. Agent won't respond to messages
Check: is the agent actually running?
hoziron agent status <agent-id>
If it's in Created state, start it:
hoziron agent start <agent-id>
6. "Cannot apply 'start' to agent in Running state"
The agent is already running. Check its current state:
hoziron agent status <agent-id>
7. Registry unreachable
hoziron catalog registry test
Check network connectivity and auth tokens.
8. CORS errors from dashboard
CORS must be configured if the dashboard connects directly:
[server.cors]
allowed_origins = ["https://dashboard.company.com"]
allow_credentials = true
Cannot use wildcard * with allow_credentials = true.
9. Route panic on startup (axum)
If you see a panic mentioning route syntax or path parameters: ensure path parameters use {param} syntax (axum 0.8), not :param.
10. Health check shows degraded
hoziron health --json
Check which subsystem is degraded and see the specific troubleshooting page:
- Provider → providers.md
- Memory → recovery.md
- Kernel → recovery.md
Related: