๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ”ง

OpenClaw๊ฐ€ ์ž˜๋ชป ์ž‘๋™ํ•  ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋น ๋ฅธ ๋ถ„๋ฅ˜ ๋ฐฉ๋ฒ•์„ ์›ํ•˜์‹œ๋ฉด FAQ์˜ First 60 seconds๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ด ํŽ˜์ด์ง€๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐ ์ง„๋‹จ์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ œ๊ณต์ž๋ณ„ ๋ฐ”๋กœ ๊ฐ€๊ธฐ: /channels/troubleshooting

์ƒํƒœ ๋ฐ ์ง„๋‹จ

๋น ๋ฅธ ๋ถ„๋ฅ˜ ๋ช…๋ น (์ˆœ์„œ๋Œ€๋กœ):

๋ช…๋ น์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์‚ฌ์šฉ ์‹œ๊ธฐ
openclaw status๋กœ์ปฌ ์š”์•ฝ: OS + ์—…๋ฐ์ดํŠธ, gateway ๋„๋‹ฌ ๊ฐ€๋Šฅ์„ฑ/๋ชจ๋“œ, ์„œ๋น„์Šค, ์—์ด์ „ํŠธ/์„ธ์…˜, ์ œ๊ณต์ž ์„ค์ • ์ƒํƒœ์ฒซ ๋ฒˆ์งธ ํ™•์ธ, ๋น ๋ฅธ ๊ฐœ์š”
openclaw status --all์ „์ฒด ๋กœ์ปฌ ์ง„๋‹จ (์ฝ๊ธฐ ์ „์šฉ, ๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ฐ€๋Šฅ, ์•ˆ์ „ํ•จ) ๋กœ๊ทธ tail ํฌํ•จ๋””๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๊ณต์œ  ์‹œ
openclaw status --deepGateway ์ƒํƒœ ํ™•์ธ ์‹คํ–‰ (์ œ๊ณต์ž ํ”„๋กœ๋ธŒ ํฌํ•จ; ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ gateway ํ•„์š”)"์„ค์ •๋จ"์ด "์ž‘๋™ํ•จ"์„ ์˜๋ฏธํ•˜์ง€ ์•Š์„ ๋•Œ
openclaw gateway probeGateway ๋ฐœ๊ฒฌ + ๋„๋‹ฌ ๊ฐ€๋Šฅ์„ฑ (๋กœ์ปฌ + ์›๊ฒฉ ๋Œ€์ƒ)์ž˜๋ชป๋œ gateway๋ฅผ ํ”„๋กœ๋ธŒํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์˜์‹ฌ๋  ๋•Œ
openclaw channels status --probe์‹คํ–‰ ์ค‘์ธ gateway์— ์ฑ„๋„ ์ƒํƒœ ์š”์ฒญ (์„ ํƒ์ ์œผ๋กœ ํ”„๋กœ๋ธŒ)Gateway๋Š” ๋„๋‹ฌ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ฑ„๋„์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ
openclaw gateway statusSupervisor ์ƒํƒœ (launchd/systemd/schtasks), ๋Ÿฐํƒ€์ž„ PID/์ข…๋ฃŒ, ๋งˆ์ง€๋ง‰ gateway ์˜ค๋ฅ˜์„œ๋น„์Šค๊ฐ€ "๋กœ๋“œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ" ์‹คํ–‰๋˜์ง€ ์•Š์„ ๋•Œ
openclaw logs --follow์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ (๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ๊ณ ์˜ ์‹ ํ˜ธ)์‹ค์ œ ์˜ค๋ฅ˜ ์ด์œ ๊ฐ€ ํ•„์š”ํ•  ๋•Œ

์ถœ๋ ฅ ๊ณต์œ : openclaw status --all์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค (ํ† ํฐ์„ ์ˆ˜์ •ํ•จ). openclaw status๋ฅผ ๋ถ™์—ฌ๋„ฃ๋Š” ๊ฒฝ์šฐ ๋จผ์ € OPENCLAW_SHOW_SECRETS=0์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š” (ํ† ํฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ).

์ฐธ์กฐ: Health checks ๋ฐ Logging.

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ

No API key found for provider "anthropic"

์ด๋Š” ์—์ด์ „ํŠธ์˜ ์ธ์ฆ ์ €์žฅ์†Œ๊ฐ€ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ Anthropic ์ž๊ฒฉ ์ฆ๋ช…์ด ๋ˆ„๋ฝ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์€ ์—์ด์ „ํŠธ๋ณ„์ด๋ฏ€๋กœ ์ƒˆ ์—์ด์ „ํŠธ๋Š” ๋ฉ”์ธ ์—์ด์ „ํŠธ์˜ ํ‚ค๋ฅผ ์ƒ์†ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์ • ์˜ต์…˜:

  • ์˜จ๋ณด๋”ฉ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ํ•ด๋‹น ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด Anthropic์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜๋Š” gateway ํ˜ธ์ŠคํŠธ์—์„œ setup-token์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค:
    openclaw models auth setup-token --provider anthropic
    
  • ๋˜๋Š” ๋ฉ”์ธ ์—์ด์ „ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ƒˆ ์—์ด์ „ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ auth-profiles.json์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ:

openclaw models status

OAuth token refresh failed (Anthropic Claude subscription)

์ด๋Š” ์ €์žฅ๋œ Anthropic OAuth ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜๊ณ  ์ƒˆ๋กœ ๊ณ ์นจ์— ์‹คํŒจํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Claude ๊ตฌ๋… (API ํ‚ค ์—†์Œ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ •์€ Claude Code setup-token์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  gateway ํ˜ธ์ŠคํŠธ์— ๋ถ™์—ฌ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ถŒ์žฅ (setup-token):

# Run on the gateway host (paste the setup-token)
openclaw models auth setup-token --provider anthropic
openclaw models status

๋‹ค๋ฅธ ๊ณณ์—์„œ ํ† ํฐ์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ:

openclaw models auth paste-token --provider anthropic
openclaw models status

์ž์„ธํ•œ ๋‚ด์šฉ: Anthropic ๋ฐ OAuth.

Control UI fails on HTTP ("device identity required" / "connect failed")

์ผ๋ฐ˜ HTTP๋ฅผ ํ†ตํ•ด ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์—ด๋ฉด (์˜ˆ: http://<lan-ip>:18789/ ๋˜๋Š” http://<tailscale-ip>:18789/), ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋น„๋ณด์•ˆ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๊ณ  WebCrypto๋ฅผ ์ฐจ๋‹จํ•˜๋ฏ€๋กœ ์žฅ์น˜ ID๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •:

  • Tailscale Serve๋ฅผ ํ†ตํ•ด HTTPS๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜๋Š” gateway ํ˜ธ์ŠคํŠธ์—์„œ ๋กœ์ปฌ๋กœ ์—ฝ๋‹ˆ๋‹ค: http://127.0.0.1:18789/.
  • HTTP๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ gateway.controlUi.allowInsecureAuth: true๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  gateway ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (ํ† ํฐ๋งŒ; ์žฅ์น˜ ID/ํŽ˜์–ด๋ง ์—†์Œ). Control UI ์ฐธ์กฐ.

CI Secrets Scan Failed

์ด๋Š” detect-secrets๊ฐ€ ๋ฒ ์ด์Šค๋ผ์ธ์— ์•„์ง ์—†๋Š” ์ƒˆ๋กœ์šด ํ›„๋ณด๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Secret scanning์„ ๋”ฐ๋ฅด์„ธ์š”.

Service Installed but Nothing is Running

Gateway ์„œ๋น„์Šค๊ฐ€ ์„ค์น˜๋˜์—ˆ์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฆ‰์‹œ ์ข…๋ฃŒ๋˜๋ฉด ์„œ๋น„์Šค๊ฐ€ "๋กœ๋“œ๋œ" ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ™•์ธ:

openclaw gateway status
openclaw doctor

Doctor/service๋Š” ๋Ÿฐํƒ€์ž„ ์ƒํƒœ (PID/๋งˆ์ง€๋ง‰ ์ข…๋ฃŒ) ๋ฐ ๋กœ๊ทธ ํžŒํŠธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋กœ๊ทธ:

  • ์„ ํ˜ธ: openclaw logs --follow
  • ํŒŒ์ผ ๋กœ๊ทธ (ํ•ญ์ƒ): /tmp/openclaw/openclaw-YYYY-MM-DD.log (๋˜๋Š” ์„ค์ •๋œ logging.file)
  • macOS LaunchAgent (์„ค์น˜๋œ ๊ฒฝ์šฐ): $OPENCLAW_STATE_DIR/logs/gateway.log ๋ฐ gateway.err.log
  • Linux systemd (์„ค์น˜๋œ ๊ฒฝ์šฐ): journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager
  • Windows: schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST

๋” ๋งŽ์€ ๋กœ๊น… ํ™œ์„ฑํ™”:

  • ํŒŒ์ผ ๋กœ๊ทธ ์„ธ๋ถ€ ์ •๋ณด ์ฆ๊ฐ€ (์ง€์†๋œ JSONL):
    { "logging": { "level": "debug" } }
    
  • ์ฝ˜์†” verbosity ์ฆ๊ฐ€ (TTY ์ถœ๋ ฅ๋งŒ):
    { "logging": { "consoleLevel": "debug", "consoleStyle": "pretty" } }
    
  • ๋น ๋ฅธ ํŒ: --verbose๋Š” ์ฝ˜์†” ์ถœ๋ ฅ๋งŒ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ํŒŒ์ผ ๋กœ๊ทธ๋Š” logging.level์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.

ํ˜•์‹, ์„ค์ • ๋ฐ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์ „์ฒด ๊ฐœ์š”๋Š” /logging์„ ์ฐธ์กฐํ•˜์„ธ์š”.

"Gateway start blocked: set gateway.mode=local"

์ด๋Š” ์„ค์ •์ด ์กด์žฌํ•˜์ง€๋งŒ gateway.mode๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ (local์ด ์•„๋‹˜) Gateway๊ฐ€ ์‹œ์ž‘์„ ๊ฑฐ๋ถ€ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • (๊ถŒ์žฅ):

  • ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Gateway ์‹คํ–‰ ๋ชจ๋“œ๋ฅผ Local๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:
    openclaw configure
    
  • ๋˜๋Š” ์ง์ ‘ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:
    openclaw config set gateway.mode local
    

๋Œ€์‹  ์›๊ฒฉ Gateway๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ:

  • ์›๊ฒฉ URL์„ ์„ค์ •ํ•˜๊ณ  gateway.mode=remote๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค:
    openclaw config set gateway.mode remote
    openclaw config set gateway.remote.url "wss://gateway.example.com"
    

์ž„์‹œ/๊ฐœ๋ฐœ ์ „์šฉ: gateway.mode=local ์—†์ด gateway๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด --allow-unconfigured๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์•„์ง ์„ค์ • ํŒŒ์ผ์ด ์—†๋‚˜์š”? openclaw setup์„ ์‹คํ–‰ํ•˜์—ฌ ์Šคํƒ€ํ„ฐ ์„ค์ •์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ gateway๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Service Environment (PATH + runtime)

Gateway ์„œ๋น„์Šค๋Š” shell/manager cruft๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œ PATH๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค:

  • macOS: /opt/homebrew/bin, /usr/local/bin, /usr/bin, /bin
  • Linux: /usr/local/bin, /usr/bin, /bin

์ด๋Š” ์˜๋„์ ์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ์ž (nvm/fnm/volta/asdf) ๋ฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž (pnpm/npm)๋ฅผ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„œ๋น„์Šค๊ฐ€ shell init์„ ๋กœ๋“œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. DISPLAY์™€ ๊ฐ™์€ ๋Ÿฐํƒ€์ž„ ๋ณ€์ˆ˜๋Š” ~/.openclaw/.env์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (gateway๊ฐ€ ์ผ์ฐ ๋กœ๋“œํ•จ). host=gateway์—์„œ ์‹คํ–‰๋˜๋Š” Exec๋Š” ๋กœ๊ทธ์ธ shell PATH๋ฅผ exec ํ™˜๊ฒฝ์— ๋ณ‘ํ•ฉํ•˜๋ฏ€๋กœ ๋ˆ„๋ฝ๋œ ๋„๊ตฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ shell init์ด ๋‚ด๋ณด๋‚ด์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” tools.exec.pathPrepend๋ฅผ ์„ค์ •). /tools/exec ์ฐธ์กฐ.

WhatsApp + Telegram ์ฑ„๋„์€ Node๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค; Bun์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ Bun ๋˜๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ Node ๊ฒฝ๋กœ๋กœ ์„ค์น˜๋œ ๊ฒฝ์šฐ openclaw doctor๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ Node ์„ค์น˜๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์„ธ์š”.

Skill missing API key in sandbox

์ฆ์ƒ: ํ˜ธ์ŠคํŠธ์—์„œ๋Š” Skill์ด ์ž‘๋™ํ•˜์ง€๋งŒ ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ๋Š” API ํ‚ค ๋ˆ„๋ฝ์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด์œ : ์ƒŒ๋“œ๋ฐ•์Šคํ™”๋œ exec๋Š” Docker ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋ฉฐ ํ˜ธ์ŠคํŠธ process.env๋ฅผ ์ƒ์†ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •:

  • agents.defaults.sandbox.docker.env (๋˜๋Š” ์—์ด์ „ํŠธ๋ณ„ agents.list[].sandbox.docker.env)๋ฅผ ์„ค์ •
  • ๋˜๋Š” ํ‚ค๋ฅผ ์ปค์Šคํ…€ ์ƒŒ๋“œ๋ฐ•์Šค ์ด๋ฏธ์ง€์— ๋ฒ ์ดํ‚น
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ openclaw sandbox recreate --agent <id> (๋˜๋Š” --all)๋ฅผ ์‹คํ–‰

Service Running but Port Not Listening

์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์œผ๋กœ ๋ณด๊ณ ๋˜์ง€๋งŒ gateway ํฌํŠธ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ์ˆ˜์‹ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Gateway๊ฐ€ ๋ฐ”์ธ๋”ฉ์„ ๊ฑฐ๋ถ€ํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ "์‹คํ–‰ ์ค‘"์˜ ์˜๋ฏธ

  • Runtime: running์€ supervisor (launchd/systemd/schtasks)๊ฐ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ด์•„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • RPC probe๋Š” CLI๊ฐ€ ์‹ค์ œ๋กœ gateway WebSocket์— ์—ฐ๊ฒฐํ•˜๊ณ  status๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ญ์ƒ Probe target: + Config (service):๋ฅผ "์‹ค์ œ๋กœ ๋ฌด์—‡์„ ์‹œ๋„ํ–ˆ๋Š”๊ฐ€?" ์ค„๋กœ ์‹ ๋ขฐํ•˜์„ธ์š”.

ํ™•์ธ:

  • openclaw gateway ๋ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด gateway.mode๋Š” local์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • gateway.mode=remote๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ CLI๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์›๊ฒฉ URL๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋Š” ์—ฌ์ „ํžˆ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ ์ค‘์ผ ์ˆ˜ ์žˆ์ง€๋งŒ CLI๊ฐ€ ์ž˜๋ชป๋œ ๊ณณ์„ ํ”„๋กœ๋ธŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. openclaw gateway status๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์˜ ํ•ด๊ฒฐ๋œ ํฌํŠธ + ํ”„๋กœ๋ธŒ ๋Œ€์ƒ์„ ํ™•์ธํ•˜์„ธ์š” (๋˜๋Š” --url ์ „๋‹ฌ).
  • openclaw gateway status ๋ฐ openclaw doctor๋Š” ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์œผ๋กœ ๋ณด์ด์ง€๋งŒ ํฌํŠธ๊ฐ€ ๋‹ซํ˜€ ์žˆ์„ ๋•Œ ๋กœ๊ทธ์—์„œ ๋งˆ์ง€๋ง‰ gateway ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฃจํ”„๋ฐฑ์ด ์•„๋‹Œ ๋ฐ”์ธ๋”ฉ (lan/tailnet/custom, ๋˜๋Š” ๋ฃจํ”„๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ auto)์€ ์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: gateway.auth.token (๋˜๋Š” OPENCLAW_GATEWAY_TOKEN).
  • gateway.remote.token์€ ์›๊ฒฉ CLI ํ˜ธ์ถœ ์ „์šฉ์ž…๋‹ˆ๋‹ค; ๋กœ์ปฌ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • gateway.token์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค; gateway.auth.token์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

openclaw gateway status๊ฐ€ ์„ค์ • ๋ถˆ์ผ์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฝ์šฐ

  • Config (cli): ... ๋ฐ Config (service): ...๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ์„ค์ •์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ํ•˜๋‚˜์˜ ์„ค์ •์„ ํŽธ์ง‘ํ•˜๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •: ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋ ค๋Š” ๋™์ผํ•œ --profile / OPENCLAW_STATE_DIR์—์„œ openclaw gateway install --force๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

openclaw gateway status๊ฐ€ ์„œ๋น„์Šค ์„ค์ • ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ฒฝ์šฐ

  • Supervisor ์„ค์ • (launchd/systemd/schtasks)์ด ํ˜„์žฌ ๊ธฐ๋ณธ๊ฐ’์„ ๋ˆ„๋ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •: openclaw doctor๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” ์ „์ฒด ์žฌ์ž‘์„ฑ์„ ์œ„ํ•ด openclaw gateway install --force).

Last gateway error:๊ฐ€ "refusing to bind โ€ฆ without auth"๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒฝ์šฐ

  • gateway.bind๋ฅผ ๋ฃจํ”„๋ฐฑ์ด ์•„๋‹Œ ๋ชจ๋“œ (lan/tailnet/custom, ๋˜๋Š” ๋ฃจํ”„๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ auto)๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ์ธ์ฆ์„ ์„ค์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •: gateway.auth.mode + gateway.auth.token (๋˜๋Š” OPENCLAW_GATEWAY_TOKEN ๋‚ด๋ณด๋‚ด๊ธฐ)์„ ์„ค์ •ํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

openclaw gateway status๊ฐ€ bind=tailnet์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ tailnet ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ

  • Gateway๊ฐ€ Tailscale IP (100.64.0.0/10)์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ํ˜ธ์ŠคํŠธ์—์„œ ๊ฐ์ง€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •: ํ•ด๋‹น ๋จธ์‹ ์—์„œ Tailscale์„ ๊ฐ€๋™ํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” gateway.bind๋ฅผ loopback/lan์œผ๋กœ ๋ณ€๊ฒฝ).

Probe note:๊ฐ€ ํ”„๋กœ๋ธŒ๊ฐ€ ๋ฃจํ”„๋ฐฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒฝ์šฐ

  • bind=lan์˜ ๊ฒฝ์šฐ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค: gateway๋Š” 0.0.0.0 (๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค)์—์„œ ์ˆ˜์‹ ํ•˜๋ฉฐ ๋ฃจํ”„๋ฐฑ์€ ์—ฌ์ „ํžˆ ๋กœ์ปฌ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ ์‹ค์ œ LAN IP (0.0.0.0์ด ์•„๋‹˜)์™€ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ธ์ฆ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

Address Already in Use (Port 18789)

์ด๋Š” ์ด๋ฏธ gateway ํฌํŠธ์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ˆ˜์‹ ํ•˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ:

openclaw gateway status

๋ฆฌ์Šค๋„ˆ์™€ ๊ฐ€๋Šฅํ•œ ์›์ธ (gateway๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘, SSH ํ„ฐ๋„)์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

Extra Workspace Folders Detected

์ด์ „ ์„ค์น˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๊ฒฝ์šฐ ๋””์Šคํฌ์— ์—ฌ์ „ํžˆ ~/openclaw๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ธ์ฆ ๋˜๋Š” ์ƒํƒœ ๋“œ๋ฆฌํ”„ํŠธ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•˜๋‚˜์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋งŒ ํ™œ์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ˆ˜์ •: ๋‹จ์ผ ํ™œ์„ฑ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ๋ณด๊ด€/์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. Agent workspace ์ฐธ์กฐ.

Main chat running in a sandbox workspace

์ฆ์ƒ: pwd ๋˜๋Š” ํŒŒ์ผ ๋„๊ตฌ๊ฐ€ ํ˜ธ์ŠคํŠธ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์˜ˆ์ƒํ–ˆ์ง€๋งŒ ~/.openclaw/sandboxes/...๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด์œ : agents.defaults.sandbox.mode: "non-main"์€ session.mainKey (๊ธฐ๋ณธ๊ฐ’ "main")์—์„œ ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋ฃน/์ฑ„๋„ ์„ธ์…˜์€ ์ž์ฒด ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ non-main์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ์ƒŒ๋“œ๋ฐ•์Šค ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

์ˆ˜์ • ์˜ต์…˜:

  • ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด ํ˜ธ์ŠคํŠธ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ: agents.list[].sandbox.mode: "off"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ํ˜ธ์ŠคํŠธ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ: ํ•ด๋‹น ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด workspaceAccess: "rw"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

"Agent was aborted"

์—์ด์ „ํŠธ๊ฐ€ ์‘๋‹ต ์ค‘๊ฐ„์— ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์›์ธ:

  • ์‚ฌ์šฉ์ž๊ฐ€ stop, abort, esc, wait ๋˜๋Š” exit๋ฅผ ๋ณด๋ƒ„
  • ์‹œ๊ฐ„ ์ดˆ๊ณผ ์ดˆ๊ณผ
  • ํ”„๋กœ์„ธ์Šค ์ถฉ๋Œ

์ˆ˜์ •: ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์ด ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.

"Agent failed before reply: Unknown model: anthropic/claude-haiku-3-5"

OpenClaw๋Š” ์˜๋„์ ์œผ๋กœ ์ด์ „/์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ชจ๋ธ (ํŠนํžˆ ํ”„๋กฌํ”„ํŠธ ์ธ์ ์…˜์— ๋” ์ทจ์•ฝํ•œ ๋ชจ๋ธ)์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ๋ชจ๋ธ ์ด๋ฆ„์ด ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •:

  • ์ œ๊ณต์ž์— ๋Œ€ํ•ด ์ตœ์‹  ๋ชจ๋ธ์„ ์„ ํƒํ•˜๊ณ  ์„ค์ • ๋˜๋Š” ๋ชจ๋ธ ๋ณ„์นญ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ์ด ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ openclaw models list ๋˜๋Š” openclaw models scan์„ ์‹คํ–‰ํ•˜๊ณ  ์ง€์›๋˜๋Š” ๋ชจ๋ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์ž์„ธํ•œ ์˜ค๋ฅ˜ ์ด์œ ๋Š” gateway ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ฐธ์กฐ: Models CLI ๋ฐ Model providers.

Messages Not Triggering

ํ™•์ธ 1: ๋ฐœ์‹ ์ž๊ฐ€ ํ—ˆ์šฉ ๋ชฉ๋ก์— ์žˆ๋‚˜์š”?

openclaw status

์ถœ๋ ฅ์—์„œ AllowFrom: ...์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ 2: ๊ทธ๋ฃน ์ฑ„ํŒ…์˜ ๊ฒฝ์šฐ ๋ฉ˜์…˜์ด ํ•„์š”ํ•œ๊ฐ€์š”?

# The message must match mentionPatterns or explicit mentions; defaults live in channel groups/guilds.
# Multi-agent: `agents.list[].groupChat.mentionPatterns` overrides global patterns.
grep -n "agents\\|groupChat\\|mentionPatterns\\|channels\\.whatsapp\\.groups\\|channels\\.telegram\\.groups\\|channels\\.imessage\\.groups\\|channels\\.discord\\.guilds" \
  "${OPENCLAW_CONFIG_PATH:-$HOME/.openclaw/openclaw.json}"

ํ™•์ธ 3: ๋กœ๊ทธ ํ™•์ธ

openclaw logs --follow
# or if you want quick filters:
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)" | grep "blocked\\|skip\\|unauthorized"

Pairing Code Not Arriving

dmPolicy๊ฐ€ pairing์ธ ๊ฒฝ์šฐ ์•Œ ์ˆ˜ ์—†๋Š” ๋ฐœ์‹ ์ž๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋ฉฐ ์Šน์ธ๋  ๋•Œ๊นŒ์ง€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ™•์ธ 1: ๋Œ€๊ธฐ ์ค‘์ธ ์š”์ฒญ์ด ์ด๋ฏธ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‚˜์š”?

openclaw pairing list <channel>

๋Œ€๊ธฐ ์ค‘์ธ DM ํŽ˜์–ด๋ง ์š”์ฒญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฑ„๋„๋‹น 3๊ฐœ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก์ด ๊ฐ€๋“ ์ฐฌ ๊ฒฝ์šฐ ํ•˜๋‚˜๊ฐ€ ์Šน์ธ๋˜๊ฑฐ๋‚˜ ๋งŒ๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ƒˆ ์š”์ฒญ์ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ™•์ธ 2: ์š”์ฒญ์ด ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ ์‘๋‹ต์ด ์ „์†ก๋˜์ง€ ์•Š์•˜๋‚˜์š”?

openclaw logs --follow | grep "pairing request"

ํ™•์ธ 3: ํ•ด๋‹น ์ฑ„๋„์— ๋Œ€ํ•ด dmPolicy๊ฐ€ open/allowlist๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Image + Mention Not Working

์•Œ๋ ค์ง„ ๋ฌธ์ œ: ๋ฉ˜์…˜๋งŒ ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ด๋ฉด (๋‹ค๋ฅธ ํ…์ŠคํŠธ ์—†์Œ), WhatsApp์ด ๋•Œ๋•Œ๋กœ ๋ฉ˜์…˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ๋ฉ˜์…˜๊ณผ ํ•จ๊ป˜ ํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

  • โŒ @openclaw + ์ด๋ฏธ์ง€
  • โœ… @openclaw check this + ์ด๋ฏธ์ง€

Session Not Resuming

ํ™•์ธ 1: ์„ธ์…˜ ํŒŒ์ผ์ด ์žˆ๋‚˜์š”?

ls -la ~/.openclaw/agents/<agentId>/sessions/

ํ™•์ธ 2: ์žฌ์„ค์ • ์ฐฝ์ด ๋„ˆ๋ฌด ์งง๋‚˜์š”?

{
  "session": {
    "reset": {
      "mode": "daily",
      "atHour": 4,
      "idleMinutes": 10080  // 7 days
    }
  }
}

ํ™•์ธ 3: ๋ˆ„๊ตฐ๊ฐ€ /new, /reset ๋˜๋Š” ์žฌ์„ค์ • ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋ณด๋ƒˆ๋‚˜์š”?

Agent Timing Out

๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” 30๋ถ„์ž…๋‹ˆ๋‹ค. ๊ธด ์ž‘์—…์˜ ๊ฒฝ์šฐ:

{
  "reply": {
    "timeoutSeconds": 3600  // 1 hour
  }
}

๋˜๋Š” process ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธด ๋ช…๋ น์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

WhatsApp Disconnected

# Check local status (creds, sessions, queued events)
openclaw status
# Probe the running gateway + channels (WA connect + Telegram + Discord APIs)
openclaw status --deep

# View recent connection events
openclaw logs --limit 200 | grep "connection\\|disconnect\\|logout"

์ˆ˜์ •: ์ผ๋ฐ˜์ ์œผ๋กœ Gateway๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด Gateway ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ (๊ฐ๋… ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ) verbose ์ถœ๋ ฅ๊ณผ ํ•จ๊ป˜ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

openclaw gateway --verbose

๋กœ๊ทธ์•„์›ƒ / ์—ฐ๊ฒฐ ํ•ด์ œ๋œ ๊ฒฝ์šฐ:

openclaw channels logout
trash "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/credentials" # if logout can't cleanly remove everything
openclaw channels login --verbose       # re-scan QR

Media Send Failing

ํ™•์ธ 1: ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ์œ ํšจํ•œ๊ฐ€์š”?

ls -la /path/to/your/image.jpg

ํ™•์ธ 2: ๋„ˆ๋ฌด ํฐ๊ฐ€์š”?

  • ์ด๋ฏธ์ง€: ์ตœ๋Œ€ 6MB
  • ์˜ค๋””์˜ค/๋น„๋””์˜ค: ์ตœ๋Œ€ 16MB
  • ๋ฌธ์„œ: ์ตœ๋Œ€ 100MB

ํ™•์ธ 3: ๋ฏธ๋””์–ด ๋กœ๊ทธ ํ™•์ธ

grep "media\\|fetch\\|download" "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)" | tail -20

High Memory Usage

OpenClaw๋Š” ๋Œ€ํ™” ๊ธฐ๋ก์„ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ •: ์ •๊ธฐ์ ์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์„ธ์…˜ ์ œํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

{
  "session": {
    "historyLimit": 100  // Max messages to keep
  }
}

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ

"Gateway won't start โ€” configuration invalid"

OpenClaw๋Š” ์ด์ œ ์„ค์ •์— ์•Œ ์ˆ˜ ์—†๋Š” ํ‚ค, ์ž˜๋ชป๋œ ํ˜•์‹์˜ ๊ฐ’ ๋˜๋Š” ์ž˜๋ชป๋œ ์œ ํ˜•์ด ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ์‹œ์ž‘์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์•ˆ์ „์„ ์œ„ํ•ด ์˜๋„์ ์ž…๋‹ˆ๋‹ค.

Doctor๋กœ ์ˆ˜์ •:

openclaw doctor
openclaw doctor --fix

์ฐธ๊ณ ์‚ฌํ•ญ:

  • openclaw doctor๋Š” ๋ชจ๋“  ์ž˜๋ชป๋œ ํ•ญ๋ชฉ์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  • openclaw doctor --fix๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜/์ˆ˜๋ฆฌ๋ฅผ ์ ์šฉํ•˜๊ณ  ์„ค์ •์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • openclaw logs, openclaw health, openclaw status, openclaw gateway status ๋ฐ openclaw gateway probe์™€ ๊ฐ™์€ ์ง„๋‹จ ๋ช…๋ น์€ ์„ค์ •์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ์—๋„ ์—ฌ์ „ํžˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

"All models failed" โ€” what should I check first?

  • ์‹œ๋„ ์ค‘์ธ ์ œ๊ณต์ž์— ๋Œ€ํ•œ ์ž๊ฒฉ ์ฆ๋ช… ์กด์žฌ (์ธ์ฆ ํ”„๋กœํ•„ + env ๋ณ€์ˆ˜).
  • ๋ชจ๋ธ ๋ผ์šฐํŒ…: agents.defaults.model.primary ๋ฐ fallback์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ •ํ™•ํ•œ ์ œ๊ณต์ž ์˜ค๋ฅ˜๋ฅผ ์œ„ํ•ด /tmp/openclaw/โ€ฆ์˜ Gateway ๋กœ๊ทธ.
  • ๋ชจ๋ธ ์ƒํƒœ: /model status (์ฑ„ํŒ…) ๋˜๋Š” openclaw models status (CLI) ์‚ฌ์šฉ.

I'm running on my personal WhatsApp number โ€” why is self-chat weird?

self-chat ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ž์‹ ์˜ ๋ฒˆํ˜ธ๋ฅผ ํ—ˆ์šฉ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

{
  channels: {
    whatsapp: {
      selfChatMode: true,
      dmPolicy: "allowlist",
      allowFrom: ["+15555550123"]
    }
  }
}

WhatsApp setup ์ฐธ์กฐ.

WhatsApp logged me out. How do I reโ€‘auth?

๋กœ๊ทธ์ธ ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  QR ์ฝ”๋“œ๋ฅผ ์Šค์บ”ํ•ฉ๋‹ˆ๋‹ค:

openclaw channels login

Build errors on main โ€” what's the standard fix path?

  1. git pull origin main && pnpm install
  2. openclaw doctor
  3. GitHub ์ด์Šˆ ๋˜๋Š” Discord ํ™•์ธ
  4. ์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ์ด์ „ ์ปค๋ฐ‹ ์ฒดํฌ์•„์›ƒ

npm install fails (allow-build-scripts / missing tar or yargs). What now?

์†Œ์Šค์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ €์žฅ์†Œ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”: pnpm (์„ ํ˜ธ). ์ €์žฅ์†Œ๋Š” packageManager: "pnpm@โ€ฆ"๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ณต๊ตฌ:

git status   # ensure you're in the repo root
pnpm install
pnpm build
openclaw doctor
openclaw gateway restart

์ด์œ : pnpm์€ ์ด ์ €์žฅ์†Œ์˜ ์„ค์ •๋œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

How do I switch between git installs and npm installs?

์›น์‚ฌ์ดํŠธ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ”Œ๋ž˜๊ทธ๋กœ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ œ์ž๋ฆฌ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  gateway ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ ์ƒˆ ์„ค์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

git ์„ค์น˜๋กœ ์ „ํ™˜:

curl -fsSL https://openclaw.bot/install.sh | bash -s -- --install-method git --no-onboard

npm ์ „์—ญ์œผ๋กœ ์ „ํ™˜:

curl -fsSL https://openclaw.bot/install.sh | bash

์ฐธ๊ณ ์‚ฌํ•ญ:

  • git ํ๋ฆ„์€ ์ €์žฅ์†Œ๊ฐ€ ๊นจ๋—ํ•œ ๊ฒฝ์šฐ์—๋งŒ rebaseํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜๊ฑฐ๋‚˜ stashํ•ฉ๋‹ˆ๋‹ค.
  • ์ „ํ™˜ ํ›„ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
    openclaw doctor
    openclaw gateway restart
    

Telegram block streaming isn't splitting text between tool calls. Why?

๋ธ”๋ก ์ŠคํŠธ๋ฆฌ๋ฐ์€ ์™„๋ฃŒ๋œ ํ…์ŠคํŠธ ๋ธ”๋ก๋งŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋Š” ์ผ๋ฐ˜์ ์ธ ์ด์œ :

  • agents.defaults.blockStreamingDefault๊ฐ€ ์—ฌ์ „ํžˆ "off"์ž…๋‹ˆ๋‹ค.
  • channels.telegram.blockStreaming์ด false๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • channels.telegram.streamMode๊ฐ€ partial ๋˜๋Š” block์ด๊ณ  draft ์ŠคํŠธ๋ฆฌ๋ฐ์ด ํ™œ์„ฑํ™”๋จ (๊ฐœ์ธ ์ฑ„ํŒ… + ์ฃผ์ œ). ์ด ๊ฒฝ์šฐ draft ์ŠคํŠธ๋ฆฌ๋ฐ์ด ๋ธ”๋ก ์ŠคํŠธ๋ฆฌ๋ฐ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • minChars / coalesce ์„ค์ •์ด ๋„ˆ๋ฌด ๋†’์•„ ์ฒญํฌ๊ฐ€ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ์ด ํ•˜๋‚˜์˜ ํฐ ํ…์ŠคํŠธ ๋ธ”๋ก์„ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค (์ค‘๊ฐ„ ์‘๋‹ต ํ”Œ๋Ÿฌ์‹œ ์ง€์  ์—†์Œ).

์ˆ˜์ • ์ฒดํฌ๋ฆฌ์ŠคํŠธ:

  1. ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ agents.defaults ์•„๋ž˜์— ๋ธ”๋ก ์ŠคํŠธ๋ฆฌ๋ฐ ์„ค์ •์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.
  2. ์‹ค์ œ ๋‹ค์ค‘ ๋ฉ”์‹œ์ง€ ๋ธ”๋ก ์‘๋‹ต์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ channels.telegram.streamMode: "off"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ ๋” ์ž‘์€ ์ฒญํฌ/coalesce ์ž„๊ณ„๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Streaming ์ฐธ์กฐ.

Discord doesn't reply in my server even with requireMention: false. Why?

requireMention์€ ์ฑ„๋„์ด ํ—ˆ์šฉ ๋ชฉ๋ก์„ ํ†ต๊ณผํ•œ ํ›„ ๋ฉ˜์…˜ ๊ฒŒ์ดํŒ…๋งŒ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ channels.discord.groupPolicy๋Š” allowlist์ด๋ฏ€๋กœ ๊ธธ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. channels.discord.guilds.<guildId>.channels๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋‚˜์—ด๋œ ์ฑ„๋„๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค; ๊ธธ๋“œ์˜ ๋ชจ๋“  ์ฑ„๋„์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ์ฒดํฌ๋ฆฌ์ŠคํŠธ:

  1. channels.discord.groupPolicy: "open"์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ๊ธธ๋“œ ํ—ˆ์šฉ ๋ชฉ๋ก ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค (์„ ํƒ์ ์œผ๋กœ ์ฑ„๋„ ํ—ˆ์šฉ ๋ชฉ๋ก).
  2. channels.discord.guilds.<guildId>.channels์—์„œ ์ˆซ์ž ์ฑ„๋„ ID๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. requireMention: false๋ฅผ channels.discord.guilds ์•„๋ž˜์— ๋„ฃ์Šต๋‹ˆ๋‹ค (์ „์—ญ ๋˜๋Š” ์ฑ„๋„๋ณ„). ์ตœ์ƒ์œ„ channels.discord.requireMention์€ ์ง€์›๋˜์ง€ ์•Š๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค.
  4. ๋ด‡์— Message Content Intent ๋ฐ ์ฑ„๋„ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ์‚ฌ ํžŒํŠธ๋ฅผ ์œ„ํ•ด openclaw channels status --probe๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ: Discord, Channels troubleshooting.

Cloud Code Assist API error: invalid tool schema (400). What now?

์ด๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ๋„๊ตฌ ์Šคํ‚ค๋งˆ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. Cloud Code Assist ์—”๋“œํฌ์ธํŠธ๋Š” JSON Schema์˜ ์—„๊ฒฉํ•œ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. OpenClaw๋Š” ํ˜„์žฌ main์—์„œ ๋„๊ตฌ ์Šคํ‚ค๋งˆ๋ฅผ ์Šคํฌ๋Ÿฝ/์ •๊ทœํ™”ํ•˜์ง€๋งŒ ์ˆ˜์ •์€ ์•„์ง ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (2026๋…„ 1์›” 13์ผ ๊ธฐ์ค€).

์ˆ˜์ • ์ฒดํฌ๋ฆฌ์ŠคํŠธ:

  1. OpenClaw ์—…๋ฐ์ดํŠธ:
    • ์†Œ์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ main์„ pullํ•˜๊ณ  gateway๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์Šคํ‚ค๋งˆ ์Šคํฌ๋Ÿฌ๋ฒ„๋ฅผ ํฌํ•จํ•˜๋Š” ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  2. anyOf/oneOf/allOf, patternProperties, additionalProperties, minLength, maxLength, format ๋“ฑ๊ณผ ๊ฐ™์€ ์ง€์›๋˜์ง€ ์•Š๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค.
  3. ์ปค์Šคํ…€ ๋„๊ตฌ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ ์Šคํ‚ค๋งˆ๋ฅผ type: "object"๋กœ ์œ ์ง€ํ•˜๊ณ  properties ๋ฐ ๊ฐ„๋‹จํ•œ ์—ด๊ฑฐํ˜•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Tools ๋ฐ TypeBox schemas ์ฐธ์กฐ.

macOS ํŠน์ • ๋ฌธ์ œ

App Crashes when Granting Permissions (Speech/Mic)

๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ํ”„๋กฌํ”„ํŠธ์—์„œ "ํ—ˆ์šฉ"์„ ํด๋ฆญํ•˜๋ฉด ์•ฑ์ด ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ "Abort trap 6"์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ:

์ˆ˜์ • 1: TCC ์บ์‹œ ์žฌ์„ค์ •

tccutil reset All bot.molt.mac.debug

์ˆ˜์ • 2: ์ƒˆ Bundle ID ๊ฐ•์ œ ์žฌ์„ค์ •์ด ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด scripts/package-mac-app.sh์—์„œ BUNDLE_ID๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  (์˜ˆ: .test ์ ‘๋ฏธ์‚ฌ ์ถ”๊ฐ€) ์žฌ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด macOS๊ฐ€ ์ƒˆ ์•ฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Gateway stuck on "Starting..."

์•ฑ์€ ํฌํŠธ 18789์˜ ๋กœ์ปฌ gateway์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์† ์ •์ง€๋œ ๊ฒฝ์šฐ:

์ˆ˜์ • 1: Supervisor ์ค‘์ง€ (์„ ํ˜ธ) Gateway๊ฐ€ launchd์— ์˜ํ•ด ๊ฐ๋…๋˜๋Š” ๊ฒฝ์šฐ PID๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ๋‹ค์‹œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € supervisor๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค:

openclaw gateway status
openclaw gateway stop
# Or: launchctl bootout gui/$UID/bot.molt.gateway (replace with bot.molt.<profile>; legacy com.openclaw.* still works)

์ˆ˜์ • 2: ํฌํŠธ๊ฐ€ ๋ฐ”์จ (๋ฆฌ์Šค๋„ˆ ์ฐพ๊ธฐ)

lsof -nP -iTCP:18789 -sTCP:LISTEN

๊ฐ๋…๋˜์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค์ธ ๊ฒฝ์šฐ ๋จผ์ € ์šฐ์•„ํ•œ ์ค‘์ง€๋ฅผ ์‹œ๋„ํ•œ ๋‹ค์Œ ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค:

kill -TERM <PID>
sleep 1
kill -9 <PID> # last resort

์ˆ˜์ • 3: CLI ์„ค์น˜ ํ™•์ธ ์ „์—ญ openclaw CLI๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์•ฑ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

openclaw --version
npm install -g openclaw@<version>

Debug Mode

verbose ๋กœ๊น… ๊ฐ€์ ธ์˜ค๊ธฐ:

# Turn on trace logging in config:
#   ${OPENCLAW_CONFIG_PATH:-$HOME/.openclaw/openclaw.json} -> { logging: { level: "trace" } }
#
# Then run verbose commands to mirror debug output to stdout:
openclaw gateway --verbose
openclaw channels login --verbose

Log Locations

๋กœ๊ทธ์œ„์น˜
Gateway ํŒŒ์ผ ๋กœ๊ทธ (๊ตฌ์กฐํ™”๋จ)/tmp/openclaw/openclaw-YYYY-MM-DD.log (๋˜๋Š” logging.file)
Gateway ์„œ๋น„์Šค ๋กœ๊ทธ (supervisor)macOS: $OPENCLAW_STATE_DIR/logs/gateway.log + gateway.err.log (๊ธฐ๋ณธ๊ฐ’: ~/.openclaw/logs/...; ํ”„๋กœํ•„์€ ~/.openclaw-<profile>/logs/... ์‚ฌ์šฉ)
Linux: journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager
Windows: schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST
์„ธ์…˜ ํŒŒ์ผ$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/
๋ฏธ๋””์–ด ์บ์‹œ$OPENCLAW_STATE_DIR/media/
์ž๊ฒฉ ์ฆ๋ช…$OPENCLAW_STATE_DIR/credentials/

Health Check

# Supervisor + probe target + config paths
openclaw gateway status
# Include system-level scans (legacy/extra services, port listeners)
openclaw gateway status --deep

# Is the gateway reachable?
openclaw health --json
# If it fails, rerun with connection details:
openclaw health --verbose

# Is something listening on the default port?
lsof -nP -iTCP:18789 -sTCP:LISTEN

# Recent activity (RPC log tail)
openclaw logs --follow
# Fallback if RPC is down
tail -20 /tmp/openclaw/openclaw-*.log

Reset Everything

ํ•ต ์˜ต์…˜:

openclaw gateway stop
# If you installed a service and want a clean install:
# openclaw gateway uninstall

trash "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"
openclaw channels login         # re-pair WhatsApp
openclaw gateway restart           # or: openclaw gateway

โš ๏ธ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์„ธ์…˜์ด ์†์‹ค๋˜๊ณ  WhatsApp์„ ๋‹ค์‹œ ํŽ˜์–ด๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Getting Help

  1. ๋จผ์ € ๋กœ๊ทธ ํ™•์ธ: /tmp/openclaw/ (๊ธฐ๋ณธ๊ฐ’: openclaw-YYYY-MM-DD.log, ๋˜๋Š” ์„ค์ •๋œ logging.file)
  2. GitHub์—์„œ ๊ธฐ์กด ์ด์Šˆ ๊ฒ€์ƒ‰
  3. ๋‹ค์Œ ๋‚ด์šฉ์œผ๋กœ ์ƒˆ ์ด์Šˆ ์—ด๊ธฐ:
    • OpenClaw ๋ฒ„์ „
    • ๊ด€๋ จ ๋กœ๊ทธ ์Šค๋‹ˆํŽซ
    • ์žฌํ˜„ ๋‹จ๊ณ„
    • ์„ค์ • (๋น„๋ฐ€ ์ˆ˜์ •!)

"๊ป๋‹ค๊ฐ€ ๋‹ค์‹œ ์ผœ๋ณด์…จ๋‚˜์š”?" โ€” ๋ชจ๋“  IT ๋‹ด๋‹น์ž

๐Ÿฆž๐Ÿ”ง

Browser Not Starting (Linux)

"Failed to start Chrome CDP on port 18800"์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ:

๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ ๋†’์€ ์›์ธ: Ubuntu์˜ Snap ํŒจํ‚ค์ง€ Chromium.

๋น ๋ฅธ ์ˆ˜์ •: ๋Œ€์‹  Google Chrome์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ค์ •์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

{
  "browser": {
    "executablePath": "/usr/bin/google-chrome-stable"
  }
}

์ „์ฒด ๊ฐ€์ด๋“œ: browser-linux-troubleshooting ์ฐธ์กฐ