# 자주 묻는 질문

> LMU AI API의 일반적인 오류 및 설정 문제 해결 방법 — 401 / 403 / 429 / 500, 토큰 과금, 모델 전환, Claude Code / Codex CLI 문제 해결.

URL: https://docs.lmuai.com/ko/docs/guide/faq



## 문제 1: 스트림 끊김 / 타임아웃 [#issue-1]

**오류 메시지:**

```
stream disconnected before completion: error sending request for url
(https://api.lmuai.com/responses)
```

**원인:** 전형적인 스트림 끊김으로, 보통 다음과 같은 이유입니다.

* 로컬 네트워크가 불안정함(Wi-Fi / 셀룰러 전환이 잦음, 신호 약함, 패킷 손실)
* **VPN / 프록시 / 시스템 프록시가 켜져 있음**: 프록시가 출구 IP를 변경하면서 연결이 끊어집니다

**해결 방법:**

1. **VPN / 프록시 / 시스템 프록시를 모두 끄고 다시 시도하세요** — LMU AI는 중국 내 직접 연결이므로 VPN이 필요하지 않습니다
2. 로컬 네트워크가 안정적인지 확인하고, 필요하면 더 안정적인 네트워크로 전환하세요

<Callout type="info" title="VPN 불필요 — 중국 내 직접 연결이 가장 빠릅니다">
  LMU AI 게이트웨이는 **중국 본토 내부**에 호스팅되어 있어, 국내 네트워크에서 **VPN, 프록시, 우회 수단 없이** 바로 호출할 수 있습니다. 직접 연결이 가장 빠르고 안정적이며, 반대로 출구 IP가 계속 바뀌는 VPN이나 프록시는 스트림 끊김을 유발하는 경향이 있습니다.
</Callout>

***

## 문제 2: 429 재시도 오류 [#issue-2]

**오류 메시지:**

```
exceeded retry limit, last status: 429 Too Many Requests
```

**원인:** 일일 할당량을 모두 사용했습니다.

**해결 방법:**

1. **내 구독**을 열어 일일 할당량이 소진되었는지 확인하세요
2. 더 필요하다면 **다른 등급**의 플랜을 구매한 뒤, 콘솔의 **API 키**에서 새 플랜의 그룹으로 전환하세요

<Callout type="warn" title="갱신 vs. 할당량 추가">
  * **같은 플랜을 구매하지 마세요** — 같은 플랜은 갱신될 뿐 할당량이 추가되지 않습니다
  * 할당량을 추가하려면 다른 플랜을 구매하세요(예: 일일권에서 월간권으로 전환)
</Callout>

***

## 문제 3: 401 Incorrect API key [#issue-3]

**오류 메시지:**

```
unexpected status 401 Unauthorized: Incorrect API key provided
```

**원인:** 요청이 저희 릴레이가 아니라 여전히 OpenAI 공식 엔드포인트로 전송되었습니다.

**해결 방법:**

1. `config.toml`이 가이드대로 올바르게 생성 또는 교체되었는지 확인하세요
2. IDE(VS Code / Cursor 등)를 재시작해 설정 파일을 다시 불러오세요
3. 이전에 공식 계정이나 다른 제공업체 계정으로 로그인했다면, 먼저 로그아웃한 뒤 다시 설정하세요

<Callout type="info" title="오류가 발생했을 때">
  오류 화면을 캡처하고 번역해 보세요 — 보통 원인을 빠르게 파악할 수 있습니다.
</Callout>

***

## 문제 4: 스크립트 실행이 비활성화됨 (Windows) [#issue-4]

**오류 메시지:**

```
codex: cannot be loaded because running scripts is disabled on this system.
```

**해결 방법:** 터미널에서 다음을 실행한 뒤 새 터미널을 여세요.

```powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
```

***

## 문제 5: Node.js를 찾을 수 없음 (Windows) [#issue-5]

**오류 메시지:** `CODEX` is not recognized as a cmdlet 또는 유사한 메시지

**원인:** Node.js가 설치되지 않았거나 PATH가 손상되었습니다.

**해결 방법:** Node.js 20 이상을 다시 설치한 뒤 새 터미널을 여세요.

***

## 문제 6: 503 No available accounts (환경 변수가 키를 덮어씀) [#issue-6]

**오류 메시지:**

```
Error code: 503 - {'error': {'message': 'No available accounts: no available accounts', 'type': 'api_error'}}
```

**원인:** `~/.zshrc`(또는 `~/.bashrc`)에 `ANTHROPIC_AUTH_TOKEN` / `ANTHROPIC_BASE_URL` / `ANTHROPIC_MODEL`이 설정되어 있습니다. 셸이 시작되면 이 변수들이 전역으로 적용되어 IDE(Cursor, VS Code 등)에 설정한 API 키를 덮어쓰기 때문에, 요청이 잘못된 키를 사용합니다.

**해결 방법(하나 선택):**

**방법 A: `.zshrc`에서 변수를 삭제**

`~/.zshrc`를 열어 다음 줄을 삭제하세요.

```bash
export ANTHROPIC_AUTH_TOKEN="..."
export ANTHROPIC_BASE_URL="..."
export ANTHROPIC_MODEL="..."
```

그 후 `source ~/.zshrc`를 실행해 적용하고 IDE를 재시작하세요.

**방법 B: 변수를 별도 파일로 옮기고 Claude Code CLI에서만 불러오기**

1. `~/.claude_env` 파일을 만들고 다음 세 줄을 넣으세요.

```bash
export ANTHROPIC_AUTH_TOKEN="sk-your-lmu-ai-api-key"
export ANTHROPIC_BASE_URL="https://api.lmuai.com"
export ANTHROPIC_MODEL="the-model-you-use"
```

2. `~/.zshrc`에서 그 세 줄을 삭제하세요.

3. Claude Code를 시작할 때 수동으로 불러오세요.

```bash
source ~/.claude_env && claude
```

이렇게 하면 IDE는 설정 파일의 키를 사용하고 Claude Code CLI는 환경 변수를 사용하므로, 서로 간섭하지 않습니다.

***

## 문제 7: 400 Invalid signature in thinking block (그룹을 넘나드는 모델 전환) [#issue-7]

**오류 메시지:**

```
upstream error: 400 messages.<index>.content.<index>:
Invalid `signature` in `thinking` block
```

**원인:** Claude의 Extended Thinking이 `thinking` 블록을 생성할 때, 이를 만들어낸 **특정 업스트림 계정**에 강하게 결합된 **암호화된 서명**을 함께 붙입니다. 하나의 대화 안에서 **그룹을 넘나들며 모델을 전환**하면(예: "Claude-Pro 직접" 그룹의 `claude-sonnet-5`에서 "Claude-MAX 고배율" 그룹의 `claude-fable-5`로), 클라이언트가 이전 기록(서명된 thinking 블록 포함)을 새 그룹의 업스트림 계정으로 전송합니다. 그룹마다 **서로 다른 업스트림**을 사용하며 다른 곳에서 발급된 서명은 검증할 수 없기 때문에 400을 반환합니다.

**일반적인 발생 조건:**

* 클라이언트가 대화 중 모델 전환을 지원하며 이전 기록 전체를 함께 전송함
* 전환 전후 그룹이 **서로 다른 업스트림 계정**에서 옴(예: "직접 연결 그룹" ↔ "릴레이 / MAX 고배율 그룹")

**해결 방법(아무거나 하나):**

1. **그룹을 전환할 때 새 대화를 시작하세요** — 기존 기록을 가져가지 않는 것이 가장 간단하고 확실한 해결책입니다.
2. **대화당 하나의 그룹만 사용하세요** — 여러 모델을 함께 써야 한다면 같은 그룹(같은 업스트림) 안에서 전환하세요.
3. **기록에서 thinking 블록을 제거하세요** — 클라이언트가 기록 편집을 지원한다면, 그룹을 전환하기 전에 `thinking` 블록을 삭제하세요.

<Callout type="info" title="왜 재시도해도 안 될까요?">
  이것은 **잘못된 서명으로 인해 복구 불가능한 4xx 클라이언트 오류**입니다. 게이트웨이가 이를 감지하면 400을 그대로 클라이언트로 전달하고 다른 계정으로 자동 재시도하지 않습니다 — 일치하지 않는 업스트림이라면 어디서든 똑같이 실패하기 때문입니다.
</Callout>

***

## 문제 8: 400 Unknown parameter: 'tools\[0].n' (이미지 엔드포인트로 tools 전송) [#issue-8]

**오류 메시지:**

```
400 - {'error': {'code': 'unknown_parameter', 'message': "Unknown parameter: 'tools[0].n'.", 'param': 'tools[0].n', 'type': 'invalid_request_error'}}
```

**영향받는 엔드포인트:** `/v1/images/generations`, `/v1/images/edits` (이미지 생성 / 편집).

**원인:** 클라이언트가 이미지 요청 본문에 `tools` 배열을 넣고, `tools[0]` 안에 `n&#x60; 필드를 포함시켰습니다. OpenAI의 이미지 엔드포인트는 **`tools`를 받지 않습니다**(도구 호출은 Chat / Responses 엔드포인트에 속하며, 이미지 엔드포인트에는 그런 개념이 없습니다). 따라서 업스트림이 400으로 거부합니다.

보통 "이미지 개수 `n`"을 잘못된 위치에 넣는 버그가 있는 클라이언트 / SDK 래퍼에서 발생합니다 — `tools[0].n` 안에 중첩되거나, Chat 요청 템플릿에서 그대로 복사된 경우입니다.

**해결 방법:**

1. **요청 본문에서 `tools` 필드를 제거하세요** — 이미지 `generations` / `edits`는 도구 호출을 지원하지 않으므로 필드를 완전히 삭제하세요.
2. **여러 장을 생성하려면 최상위 `n`에 개수를 지정하세요** — `n`(호출당 다중 생성)은 `/v1/images/generations`만 지원하며, `/v1/images/edits`는 지원하지 않으므로 거기서는 `n`을 삭제하세요.
3. **클라이언트 SDK 버전을 확인하세요** — 래퍼가 파라미터를 자동으로 구성한다면, 이미지 엔드포인트에 Chat 템플릿을 적용하지 않도록 업그레이드하거나 교체하세요.

<Callout type="info" title="왜 계정 전환 / 재시도가 도움이 되지 않을까요?">
  이것은 **잘못된 요청 본문**으로 인한 4xx 클라이언트 오류이며, 업스트림 계정이나 그룹과는 무관합니다 — 게이트웨이는 요청을 그대로 전달하므로 어떤 계정에서도 동일한 400이 반환됩니다. 클라이언트가 보내는 요청 파라미터를 수정해야 합니다.
</Callout>

***

## 문제 9: VPN이 필요한가요? [#issue-9]

**아니요.** LMU AI 게이트웨이는 **중국 본토 내부**에 호스팅되어 있으며, 국내 네트워크에서 VPN, 프록시, 우회 수단 없이 `api.lmuai.com`을 바로 호출할 수 있습니다.

오히려 출구 IP가 계속 바뀌는 VPN이나 프록시는 스트림 끊김을 유발하는 경향이 있습니다([문제 1](#issue-1) 참고). 중국 내 직접 연결이 가장 빠르고 안정적입니다.

***

## 문제 10: 401 API\_KEY\_REQUIRED (Codex가 키를 보내지 않음) [#issue-10]

**오류 메시지:**

```
unexpected status 401 Unauthorized: {"code":"API_KEY_REQUIRED","message":"API key is required in Authorization header (Bearer scheme), x-api-key header, or x-goog-api-key header"}, url: https://api.lmuai.com/responses, request id: ...
```

**원인:** 최신 Codex 버전에서 인증 방식이 변경되었습니다 — 자격 증명이 `auth.json`에서 읽히는 대신 시스템 키링에 저장될 수 있습니다. 기존 가이드의 설정(`auth.json` + `requires_openai_auth = true`)을 사용하면 Codex가 보내는 요청에 **API 키가 전혀 담기지 않아**(`Authorization`, `x-api-key`, `x-goog-api-key` 중 어느 것도 전송되지 않음) 게이트웨이가 키를 찾지 못하고 401 `API_KEY_REQUIRED`를 반환합니다.

이는 [문제 3](#issue-3)의 `Incorrect API key provided`와는 다릅니다. 그쪽은 잘못된 키를 보내는 경우(보통 요청이 LMU AI 릴레이가 아니라 OpenAI 공식 엔드포인트로 전송됨)이고, 이쪽은 **키를 전혀 보내지 않는** 경우입니다.

**해결 방법:** 키를 요청 헤더에 직접 넣으세요. `~/.codex/config.toml`(Windows에서는 `C:\users\your-username\.codex\config.toml`)을 열고, 모델 제공자 섹션 `[model_providers.<ID>]`(이 사이트의 가이드를 따랐다면 보통 `[model_providers.codex]`)를 찾아 그 안의 `requires_openai_auth = true` 줄을 삭제한 뒤, **파일 맨 끝**에 해당하는 `http_headers` 하위 테이블을 추가하세요.

```toml
[model_providers.codex]
name = "codex"
base_url = "https://api.lmuai.com"
wire_api = "responses"

[model_providers.codex.http_headers]
Authorization = "Bearer your sk- key generated in the console"
```

저장하고 터미널을 다시 연 다음 Codex를 재시작하세요.

<Callout type="warn" title="실수하기 쉬운 부분">
  * 하위 테이블 이름의 `codex`는 위쪽 `[model_providers.codex]`의 ID와 일치해야 합니다(예를 들어 VS Code 확장 가이드에서는 `[model_providers.OpenAI.http_headers]`입니다)
  * `Bearer`와 키 사이에는 **공백 하나**를 유지하세요
  * `http_headers` 하위 테이블은 파일 맨 끝에 있어야 합니다 — 그 뒤에 작성된 설정은 모두 요청 헤더로 취급됩니다
</Callout>

이 사이트의 모든 Codex 가이드([Mac](/ko/docs/tools/codex-cli-mac) / [Windows](/ko/docs/tools/codex-cli-windows) / [서버](/ko/docs/tools/codex-cli-server) / [Codex 앱](/ko/docs/tools/codex-app) / [VS Code 확장](/ko/docs/tools/vscode-plugin))는 위 설정 방식으로 업데이트되었습니다.

***

## 그래도 해결되지 않나요? [#그래도-해결되지-않나요]

설치나 설정 중 특수한 환경 때문에 계속 막힌다면 지원팀에 문의하세요.

* WeChat으로 지원팀 추가
* 셴위(闲鱼)에서 지원팀에 연락

> 원격 지원 시간: **오후 2시 이후**(오전에는 복잡한 환경 설정을 원격으로 처리합니다).
>
> 원격 지원이 필요하면 먼저 **NetEase UU Remote**를 다운로드해 지원팀에 알려주세요. 기술 안내와 원격 지원은 오후 2시 이후에 진행됩니다.
