원클릭으로
debug
Debug NanoClaw Codex container issues: auth, mounts, session resumption, runtime failures, and service health.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Debug NanoClaw Codex container issues: auth, mounts, session resumption, runtime failures, and service health.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/add-gmail/SKILL.md.
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/add-parallel/SKILL.md.
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/add-telegram/SKILL.md.
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/add-telegram-swarm/SKILL.md.
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/add-voice-transcription/SKILL.md.
Legacy compatibility wrapper. Canonical skill lives in .codex/skills/convert-to-docker/SKILL.md.
| name | debug |
| description | Debug NanoClaw Codex container issues: auth, mounts, session resumption, runtime failures, and service health. |
Host (macOS/Linux) Container (Linux VM)
────────────────────────────────────────────────────────────
src/container-runner.ts container/agent-runner/
│ │
│ spawns container runtime │ runs Codex SDK
│ │
├── data/env/env ───────────────> /workspace/env-dir/env
├── groups/{folder} ─────────────> /workspace/group
├── data/ipc/{folder} ──────────> /workspace/ipc
├── data/sessions/{folder}/.codex/ -> /home/node/.codex/
└── (main only) project root ----> /workspace/project
logs/nanoclaw.loglogs/nanoclaw.error.loggroups/{folder}/logs/container-*.logdata/sessions/{folder}/.codex/launchctl list | grep nanoclaw
container ls --format '{{.Names}} {{.Status}}' 2>/dev/null | grep nanoclaw
grep -E 'ERROR|WARN|timeout|failed' logs/nanoclaw.log | tail -30
Check latest container log first:
ls -lt groups/*/logs/container-*.log | head -5
cat groups/<group>/logs/container-<timestamp>.log
Likely causes:
codex login not done, no API key in .env)container/Docker unavailable)Supported auth paths:
data/sessions/{group}/.codex/auth.json.env allowlist (OPENAI_API_KEY, CODEX_API_KEY, plus optional OpenAI overrides)Checks:
ls -la data/sessions/<group>/.codex/
grep -E '^(OPENAI_API_KEY|CODEX_API_KEY|OPENAI_BASE_URL|OPENAI_ORG_ID|OPENAI_PROJECT_ID)=' .env
Validate mounted env inside container:
echo '{}' | container run -i \
--mount type=bind,source=$(pwd)/data/env,target=/workspace/env-dir,readonly \
--entrypoint /bin/bash nanoclaw-agent:latest \
-c 'export $(cat /workspace/env-dir/env | xargs); env | grep -E "^(OPENAI_API_KEY|CODEX_API_KEY|OPENAI_BASE_URL|OPENAI_ORG_ID|OPENAI_PROJECT_ID)="'
Ensure mount target is .codex and session IDs are persisted:
grep -n '/home/node/.codex' src/container-runner.ts
sqlite3 store/messages.db "SELECT group_folder, session_id FROM sessions ORDER BY group_folder;"
ls -la data/sessions/<group>/.codex/sessions 2>/dev/null
grep -E 'mount|Mount validated|REJECTED|Container mount configuration' logs/nanoclaw.log | tail -30
cat ~/.config/nanoclaw/mount-allowlist.json
Remember:
-v host:container--mount type=bind,...,readonlygrep -E 'Connected to WhatsApp|Connection closed|QR|authentication required' logs/nanoclaw.log | tail -20
grep -E 'New messages|Processing messages|Spawning container|Agent error' logs/nanoclaw.log | tail -40
sqlite3 store/messages.db "SELECT chat_jid, MAX(timestamp) latest FROM messages GROUP BY chat_jid ORDER BY latest DESC LIMIT 10;"
mkdir -p data/env groups/test
cp .env data/env/env
echo '{"prompt":"Say hello","groupFolder":"test","chatJid":"test@g.us","isMain":false}' | \
container run -i \
--mount "type=bind,source=$(pwd)/data/env,target=/workspace/env-dir,readonly" \
-v $(pwd)/groups/test:/workspace/group \
-v $(pwd)/data/ipc/test:/workspace/ipc \
nanoclaw-agent:latest
npm run build
./container/build.sh
launchctl kickstart -k gui/$(id -u)/com.nanoclaw
Collect and share:
logs/nanoclaw.loggroups/<folder>/logs/container-*.logsqlite3 store/messages.db "SELECT * FROM sessions;"