๋ฌธ์ ํด๊ฒฐ
์์ฒญ์ ์ธ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ, ๊ฐ ๋จ๊ณ๋ง๋ค ๊ณ ์ ํ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
AI CLI โ sotatek-proxy (127.0.0.1:3817) โ Bifrost gateway โ Provider (Anthropic/OpenAI/โฆ)| ์ถ์ฒ | ์๋ณ ๋ฐฉ๋ฒ |
|---|---|
| sotatek-proxy | ๋ณธ๋ฌธ {"error":"upstream unreachable","proxy":"sotatek-proxy"} (HTTP 502), ๋๋ X-Git-Remote-Warning ์๋ต ํค๋ |
| Gateway | ๋ณธ๋ฌธ {"error":{"message":...}}. ๊ฑฐ๋ฒ๋์ค ์ค๋ฅ์๋ "type"๋ ์์ต๋๋ค(์: virtual_key_blocked). 2.1โ2.4์ 403์ message๋ง ์์ต๋๋ค |
| Provider | Provider ๊ณ ์ ์ message/type, ๋๊ฐ Provider์ HTTP ์ํ ๊ทธ๋๋ก |
1. sotatek-proxy ์ค๋ฅ
์น์ ์ ๋ชฉ: โ1. sotatek-proxy ์ค๋ฅโConnection refused
์น์ ์ ๋ชฉ: โConnection refusedโํ๋ก์๊ฐ ์คํ ์ค์ด ์๋๋๋ค. sotatek-proxy status๋ก ํ์ธํ๊ณ sotatek-proxy start๋ก ์์ํ์ธ์. CLI๊ฐ ANTHROPIC_BASE_URL=http://127.0.0.1:3817/anthropic๋ฅผ ๊ฐ๋ฆฌํค๋์ง๋ ํ์ธํ์ธ์.
HTTP 502 upstream unreachable
์น์
์ ๋ชฉ: โHTTP 502 upstream unreachableโํ๋ก์๊ฐ gateway์ ์ฐ๊ฒฐํ์ง ๋ชปํ์ต๋๋ค(๋คํธ์ํฌ, VPN, DNS ๋๋ gateway ๋ค์ด). ๋คํธ์ํฌ/VPN์ ํ์ธํ๊ณ sotatek-proxy logs๋ฅผ ๋ณด์ธ์. ๋คํธ์ํฌ๊ฐ ์ ์์ธ๋ฐ๋ ๊ณ์๋๋ฉด Admin/IT์ ๋ฌธ์ํ์ธ์.
X-Git-Remote-Warning / X-Git-Remote-Remedy ํค๋
์น์
์ ๋ชฉ: โX-Git-Remote-Warning / X-Git-Remote-Remedy ํค๋โํ๋ก์๊ฐ git remote๋ฅผ ํ์ธํ์ง ๋ชปํด๋ ์์ฒญ์ ๊ทธ๋๋ก ์ ๋ฌํ๋ฉฐ, ์์ธ์ ์ด ๋ ์๋ต ํค๋๋ก ์๋ ค ์ค๋๋ค. ์ดํ gateway๊ฐ 2.1 ๋๋ 2.2์ 403์ผ๋ก ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ์ค๋ฅ๊ฐ ๋๋ ์ ์ฅ์์์ sotatek-proxy doctor๋ฅผ ์คํํด ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
| ์์ธ ์ฝ๋ | ์๋ฏธ | ํด๊ฒฐ |
|---|---|---|
not_a_repo | CLI๋ฅผ git ์ ์ฅ์ ๋ฐ์์ ์์ํจ(ํ๋ก์๋ ์์ 3๋จ๊ณ๊น์ง ํ์) | ์ ์ฅ์ ์์์ CLI๋ฅผ ๋ค์ ์์ |
no_remote | ์ ์ฅ์์ remote๊ฐ ์์ | git remote add origin <url> |
git_not_found | ์๋น์ค๊ฐ git์ ์ฐพ์ง ๋ชปํจ | macOS: xcode-select --install (launchd๋ ์ต์ PATH๋ง ๋ณด๋ฏ๋ก Homebrew git์ /usr/local/bin์ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์). Windows: Git for Windows ์ค์น ํ ์๋น์ค ์ฌ์์. Linux: git ์ค์น ํ ์๋น์ค ์ฌ์์ |
git_shim_broken | macOS /usr/bin/git์ด xcrun ์คํ
์ด๋ฉฐ OS ์
๊ทธ๋ ์ด๋ ํ ๊นจ์ง | xcode-select --install |
git_ownership | ๋ค๋ฅธ ์ฌ์ฉ์ ์์ ์ ์ฅ์๋ฅผ git์ด ๊ฑฐ๋ถ | git config --global --add safe.directory <์ ์ฅ์ ๊ฒฝ๋ก> |
git_permission | ํ๋ก์๊ฐ ์ ์ฅ์๋ฅผ ์ฝ์ ์ ์์ | ์ ์ฅ์ ์์ ์/๊ถํ๊ณผ ์๋น์ค ์คํ ์ฌ์ฉ์ ํ์ธ |
git_timeout | git remote -v๊ฐ 2์ด ์ด๊ณผ(๋คํธ์ํฌ ๋๋ผ์ด๋ธ, credential helper ์ ์ง) | ํด๋น ์ ์ฅ์์์ git remote -v ์๊ฐ ์ธก์ |
git_exec_failed | ๊ธฐํ ์ด์ ๋ก git ์คํจ | git remote -v๋ฅผ ์ง์ ์คํํด git์ ์ค๋ฅ ํ์ธ |
pid_not_found, cwd_not_found | ๊ฒ์ฌ ์ ์ ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋จ | ๊ฐ๋์ด๋ฉด ๋ฌด์, ๊ณ์๋๋ฉด sotatek-proxy doctor ์คํ |
inspect_timeout, inspect_failed | ํ๋ก์ธ์ค ๊ฒ์ฌ ๋๊ตฌ(lsof, /proc, Windows TCP ํ
์ด๋ธ) ์คํจ ๋๋ ์๊ฐ ์ด๊ณผ | sotatek-proxy doctor ์คํ ํ OS๋ณ ์๋ด์ ๋ฐ๋ฆ |
non_loopback_peer | ํด๋ผ์ด์ธํธ๊ฐ loopback์ผ๋ก ์ฐ๊ฒฐํ์ง ์์ | http://127.0.0.1:3817 ์ฌ์ฉ |
2. Gateway ์ค๋ฅ
์น์ ์ ๋ชฉ: โ2. Gateway ์ค๋ฅโGateway๋ ๋ค์ ์์๋ก ํ์ธํฉ๋๋ค: ํค ์ธ์ฆ โ git ์ปจํ ์คํธ โ git/ํ๋ก์ ํธ ๊ฐ๋ โ ํ๋ก์ ํธ ๋ชจ๋ธ ๊ฐ๋ โ ๊ฑฐ๋ฒ๋์ค(ํค ์ํ, ์์ฐ, rate limit).
2.1 403 โ Git remote is required. Please connect through SCC proxy to register your project.
์น์
์ ๋ชฉ: โ2.1 403 โ Git remote is required. Please connect through SCC proxy to register your project.โ- ์์ธ: ์์ฒญ์
X-Git-Remoteํค๋๊ฐ ์์ต๋๋ค(gateway ์ง์ ํธ์ถ, ๋๋ ํ๋ก์๊ฐ remote๋ฅผ ํ์ธํ์ง ๋ชปํจ โ ์ ์น์ ์ฐธ๊ณ ). Admin์ด ํค์bypass_git_guard๋ฅผ ์ผ์ง ์์ ํ gateway๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ํค๋๋ฅผ ์๊ตฌํฉ๋๋ค. - ์ฌ์ฉ์ ์กฐ์น: gateway์ ์ง์ ํธ์ถํ์ง ๋ง๊ณ sotatek-proxy๋ฅผ ํตํด ์ ์ํ์ธ์. ์ ์ฅ์์์
sotatek-proxy doctor๋ฅผ ์คํํ์ธ์. - Admin/IT ๋ฌธ์: CI/์คํฌ๋ฆฝํธ์ฉ
bypass_git_guard๊ฐ ํ์ํ๊ฑฐ๋, ํ๋ก์๊ฐ ์ ์์ธ๋ฐ๋ ์ค๋ฅ๊ฐ ๊ณ์๋ ๋.
2.2 403 โ Git remote is required. Invalid project context โ please reconnect through SCC proxy.
์น์
์ ๋ชฉ: โ2.2 403 โ Git remote is required. Invalid project context โ please reconnect through SCC proxy.โ- ์์ธ:
X-Git-Remote๊ฐ ์์ง๋ง base64๊ฐ ์๋ชป๋์๊ฑฐ๋ ๋น์ด ์์ต๋๋ค. - ์ฌ์ฉ์ ์กฐ์น: ํ๋ก์๋ฅผ ์ฌ์์(
sotatek-proxy stopํstart)ํ๊ณ ๋ค๋ฅธ ๋๊ตฌ๊ฐ ์ด ํค๋๋ฅผ ์ถ๊ฐํ์ง ์๋์ง ํ์ธํ์ธ์. - ํค๋๋ ์ ํจํ์ง๋ง ๋ด์ฉ์ ์ฌ์ฉํ ์ ์๋ remote๊ฐ ์๋ ๊ฒฝ์ฐ๋ ๊ฑฐ๋ถ๋์ง ์์ผ๋ฉฐ, ์์ฒญ์ ํ๋ก์ ํธ๊ฐ ์ฐ๊ฒฐ๋์ง ์์ ๋ฟ์ ๋๋ค.
2.3 403 โ this key's project does not match the calling project's git remote
์น์
์ ๋ชฉ: โ2.3 403 โ this key's project does not match the calling project's git remoteโ- ์์ธ: ์ ์ฅ์์ git remote๊ฐ Admin์ ์ํด ํ๋ก์ ํธ A์ ๋ฐฐ์ ๋์๋๋ฐ, ์ฌ์ฉ ์ค์ธ ํค๋ ํ๋ก์ ํธ B ์์์ ๋๋ค.
- ์ฌ์ฉ์ ์กฐ์น: ์์ ์ค์ธ ํ๋ก์ ํธ์ ํค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ๋ฐ๋ฅธ ํค๋ฅผ ์์ฒญํ์ธ์.
- Admin/IT ๋ฌธ์: ํค๊ฐ ๋ง๋๋ฐ๋ ์ค๋ฅ๊ฐ ๊ณ์๋๋ฉด โ ์ ์ฅ์๊ฐ ์๋ชป๋ ํ๋ก์ ํธ์ ๋ฐฐ์ ๋์๊ฑฐ๋ ํค์ ํ๊ทธ๊ฐ ์๋ชป๋์์ ์ ์์ต๋๋ค. ์ ์ฅ์์ ํ๋ก์ ํธ๊ฐ ์๊ฑฐ๋ ํค์ ํ๋ก์ ํธ๊ฐ ์์ผ๋ฉด ์ด ๊ฒ์ฌ๋ ๊ฑด๋๋๋๋ค.
2.4 403 โ requested model is not permitted
์น์
์ ๋ชฉ: โ2.4 403 โ requested model is not permittedโ- ์์ธ: ์ ์ฅ์์ ํ๋ก์ ํธ์ ํ์ฉ ๋ชจ๋ธ ๋ชฉ๋ก์ด ์๊ณ ์์ฒญํ ๋ชจ๋ธ์ด ๊ทธ ์์ ์์ต๋๋ค. ๋ฉ์์ง์๋ ์๋์ ์ผ๋ก ํ๋ก์ ํธ ์ด๋ฆ์ด ์์ต๋๋ค.
- ์ฌ์ฉ์ ์กฐ์น: ๋ชจ๋ธ์ ๋ณ๊ฒฝํ์ธ์. Admin/IT๊ฐ ํ๋ก์ ํธ์ ๋ชจ๋ธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
2.5 403 virtual_key_blocked โ Virtual key is inactive
์น์
์ ๋ชฉ: โ2.5 403 virtual_key_blocked โ Virtual key is inactiveโ- ์์ธ: Admin์ด ํค๋ฅผ ๋นํ์ฑํํ์ต๋๋ค.
- ๋จผ์ ํ์ธํ์ธ์ โ ์๋ชป๋ ํค๋ฅผ ๋ณด๋ด๊ณ ์์ ์ ์์ต๋๋ค. Claude Code๋ ํ๊ฒฝ ๋ณ์์
~/.claude/settings.json์์ ํค๋ฅผ ์ฝ๊ณ , VS Code์ Antigravity์๋ ๋ณ๋ ์ค์ ์ด ์์ต๋๋ค. ์ด๋ค ๊ฐ์ ์ถฉ๋๋ง์ผ๋ก ์ด ์ค๋ฅ๊ฐ ์๊ธฐ์ง๋ ์์ง๋ง, ๋๊ตฌ๊ฐ ์ค๋๋์๊ฑฐ๋ ๋นํ์ฑํ๋ ํค๋ฅผ ๋ณด๋ด๋ฉด ๋ฐ์ํฉ๋๋ค. ํ์ธํ ํญ๋ชฉ:~/.claude/settings.json์env์น์ ๊ณผ ์ ธ ํ๊ฒฝ ๋ณ์์ANTHROPIC_AUTH_TOKEN.- VS Code(VS Code)์ Antigravity(Antigravity)์ ์ค์ ๋ ํค.
- ์ ํจํ ํค ํ๋๋ก ํต์ผํ ๋ค CLI/IDE๋ฅผ ์ฌ์์.
- Admin/IT ๋ฌธ์: ๋ณด๋ด๋ ํค๊ฐ ๋ฐ๊ธ๋ฐ์ ํค์์ด ํ์คํ ๊ฒฝ์ฐ.
2.6 403 virtual_key_blocked โ Virtual key has expired / Virtual key is not yet active
์น์
์ ๋ชฉ: โ2.6 403 virtual_key_blocked โ Virtual key has expired / Virtual key is not yet activeโํ์ฌ ์๊ฐ(UTC)์ด ํค์ end_date๋ฅผ ์ง๋ฌ๊ฑฐ๋ start_date ์ด์ ์
๋๋ค. Admin/IT์ ์ฐ์ฅ ๋๋ ์ ํจ ๊ธฐ๊ฐ ํ์ธ์ ์์ฒญํ์ธ์.
2.7 403 virtual_key_not_found โ Virtual key not found
์น์
์ ๋ชฉ: โ2.7 403 virtual_key_not_found โ Virtual key not foundโํค(sk-bf-...)๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค: ์คํ, ๋ณต์ฌ ์ ์๋ฆผ, ๋๋ ์ญ์ ๋จ. ๋ค์ ์ ํํ ๋ณต์ฌํ๊ณ , ๊ทธ๋๋ ์ ๋๋ฉด Admin/IT์ ์ฌ๋ฐ๊ธ์ ์์ฒญํ์ธ์.
2.8 401 virtual_key_required
์น์
์ ๋ชฉ: โ2.8 401 virtual_key_requiredโ- ๋ฉ์์ง:
virtual key is required. Provide a virtual key via the x-bf-vk header. - ์์ธ: gateway๊ฐ virtual key๋ฅผ ํ์๋ก ์๊ตฌํ๋๋ฐ ์์ฒญ์ ์ ํจํ ํค๊ฐ ์์ต๋๋ค. ํค๋
x-bf-vk,Authorization: Bearer,x-api-key,x-goog-api-key์์ ์ฝ์ผ๋ฉฐ ๋ฐ๋์sk-bf-๋ก ์์ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ์ ๋์ฌ์ ํค๋ ํค๊ฐ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. - ์ฌ์ฉ์ ์กฐ์น:
ANTHROPIC_AUTH_TOKEN์ด ์ค์ ๋์ด ์๊ณ ํ์์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ์ธ์.
2.9 401 Unauthorized / invalid_admin_api_key / 403 forbidden_for_api_key_actor
์น์
์ ๋ชฉ: โ2.9 401 Unauthorized / invalid_admin_api_key / 403 forbidden_for_api_key_actorโ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ๋ ๋๋ญ
๋๋ค. ๋ณดํต ๋ชจ๋ธ ํธ์ถ ๊ฒฝ๋ก์ ๊ด๋ฆฌ์ ํค(bfak_*)๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ gateway๊ฐ ์ถ๊ฐ ์๊ฒฉ ์ฆ๋ช
์ ์๊ตฌํ๋ ๊ฒฝ์ฐ์
๋๋ค. sk-bf-... virtual key๋ฅผ ์ฌ์ฉํ๊ณ , ๊ทธ๋๋ ์ ๋๋ฉด Admin/IT์ ๋ฌธ์ํ์ธ์.
2.10 403 model_blocked / provider_blocked
์น์
์ ๋ชฉ: โ2.10 403 model_blocked / provider_blockedโModel '<model>' is not allowed for this virtual key / Provider '<p>' is not allowed for this virtual key. 2.4์ ๋ฌ๋ฆฌ ํ๋ก์ ํธ๊ฐ ์๋ ํค ๊ธฐ์ค ์ ํ์
๋๋ค. ๋ชจ๋ธ/Provider๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ Admin/IT์ ํค์ ํ์ฉ ๋ชฉ๋ก ๋ณ๊ฒฝ์ ์์ฒญํ์ธ์.
2.11 429 rate_limited / token_limited / request_limited
์น์
์ ๋ชฉ: โ2.11 429 rate_limited / token_limited / request_limitedโ์: rate limit violated for <name>: [token limit exceeded (used/max, resets every <window>)]. ๋ฉ์์ง์ ์ ํ ์ด๊ธฐํ ์์ ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ ํธ์ถ ๋น๋๋ฅผ ์ค์ด์ธ์. ํ์ํ๋ฉด Admin/IT์ ํ๋ ์ํฅ์ ์์ฒญํ์ธ์.
2.12 402 budget_exceeded
์น์
์ ๋ชฉ: โ2.12 402 budget_exceededโ<scope> budget exceeded: <used> >= <max> dollars (scope: ํค, ํ, ๊ณ ๊ฐ, Provider ๋๋ ๋ชจ๋ธ). ์ง์ ํด๊ฒฐํ ์ ์์ต๋๋ค โ Admin/IT์ ๋ฌธ์ํ๊ฑฐ๋ ์์ฐ ์ฃผ๊ธฐ๊ฐ ์ด๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ธ์.
2.13 429 user_budget_exceeded
์น์
์ ๋ชฉ: โ2.13 429 user_budget_exceededโuser budget exceeded โ contact administrator. ์์ฐ์ ํค ์์ ์ ๊ธฐ์ค์
๋๋ค. Admin/IT์ ๋ฌธ์ํ๊ฑฐ๋ ์ด๊ธฐํ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ธ์.
2.14 400 missing_required_headers
์น์
์ ๋ชฉ: โ2.14 400 missing_required_headersโmissing required headers: <list>. Admin์ด ํ์ ํค๋๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ์๋ง ๋ํ๋ฉ๋๋ค. ์ด๋ค ํค๋๋ฅผ ๋ณด๋ด์ผ ํ๋์ง Admin/IT์ ๋ฌธ์ํ์ธ์.
3. Provider ์ค๋ฅ
์น์ ์ ๋ชฉ: โ3. Provider ์ค๋ฅโProvider์ 4xx/5xx(์๋ชป๋ Provider ํค, upstream rate limit, 5xx, 529 overloaded)๋ gateway๊ฐ ์๋ณธ ๋ฉ์์ง์ ํจ๊ป ์ ๋ฌํ๋ฉฐ, ๋๊ฐ HTTP ์ํ๋ ๊ทธ๋๋ก์ ๋๋ค. 429/5xx/529๋ ์ ์ ํ ๋ค์ ์๋ํ๊ณ , ๊ณ์๋๋ฉด ๋ฐ์ ์๊ฐ๊ณผ ํจ๊ป Admin/IT์ ์๋ ค ์ฃผ์ธ์.
๋น ๋ฅธ ์ง๋จ
์น์ ์ ๋ชฉ: โ๋น ๋ฅธ ์ง๋จโ- HTTP ์ํ์ ๋ณธ๋ฌธ์ผ๋ก ํ๋ก์, gateway, Provider ์ค๋ฅ๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
- git ๊ด๋ จ 403(2.1โ2.3)์ ์ค๋ฅ๊ฐ ๋๋ ์ ์ฅ์์์
sotatek-proxy doctor๋ฅผ ์คํํฉ๋๋ค. - ํค ์ค๋ฅ(2.5โ2.8)๋ ์ค์ ๋ก ์ ์ก๋๋ ํค๋ฅผ ํ์ธํฉ๋๋ค(
~/.claude/settings.json, ํ๊ฒฝ ๋ณ์, IDE ์ค์ ). - ๊ทธ๋๋ ๋ถ๋ถ๋ช ํ๋ฉด(์: ์ด ํ์ด์ง์ ์๋ ๋ฉ์์ง์ 403): Admin/IT์ ๋ฐ์ ์๊ฐ๊ณผ ํค์ ๋ง์ง๋ง 8์๋ฅผ ๋ณด๋ด์ธ์. gateway ๋์๋ณด๋ ๋ก๊ทธ์์ ์กฐํํ ์ ์์ต๋๋ค.