# OpenClaw invalid beta flag 오류: 거부된 기능을 찾아 수정하기

> invalid beta flag는 요청에 포함된 beta 기능을 해당 API가 받아들이지 못했다는 단서입니다. 실제 제공업체와 오류에 나온 기능 이름을 확인한 뒤, 그 기능을 추가한 설정만 수정하세요. 설정 검사 통과와 Gateway 실행만으로 끝내지 말고 같은 연결에서 모델 응답이 완료되는지 확인해야 합니다.

- URL: https://blog.laozhang.ai/ko/posts/openclaw-invalid-beta-flag
- Published: 2026-10-04
- Updated: 2026-10-04
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ko/about)
- Category: AI 문제 해결
- Tags: OpenClaw, invalid beta flag, Anthropic, 400 오류, API 설정

---
OpenClaw에서 `invalid beta flag`와 HTTP 400 오류가 함께 나타나면 **오류에 나온 beta 이름, 실제 요청을 받는 제공업체, 그 기능을 추가한 설정**부터 확인하세요. 필요 없는 기능을 수동 헤더로 추가했다면 해당 값만 제거하고, OpenClaw의 기능 옵션이 자동으로 추가했다면 그 옵션과 제공업체의 지원 조건을 함께 점검합니다. 프록시를 사용한다면 프록시가 헤더를 추가하는지도 확인해야 합니다.

API 키 교체, 전체 설정 초기화, 모든 beta 헤더 삭제를 먼저 할 이유는 없습니다. 지원되는 기능과 인증 방식까지 바꾸면 원래 문제를 구분하기 어려워집니다. 수정 후에는 설정 검사를 통과했는지, 실행 중인 Gateway에 반영됐는지, **같은 제공업체와 모델에서 응답이 끝까지 완료되는지** 차례로 확인합니다.

아래는 2026년 10월 4일 확인한 공식 문서를 기준으로 한 절차입니다. 실제 계정의 설정을 변경하거나 유료 모델 호출로 복구를 시험한 결과는 아닙니다.

## 오류 원문에서 beta 이름과 응답한 서버를 확인하세요

Anthropic의 [beta 헤더 안내](https://platform.claude.com/docs/en/api/beta-headers)에 따르면 잘못된 beta 이름이나 해당 조직에서 사용할 수 없는 beta 기능은 `400 invalid_request_error`를 일으킬 수 있습니다. 따라서 400이라는 숫자만 보고 베타 오류로 판단하지 말고 응답 본문의 정확한 메시지를 확인해야 합니다. 다른 잘못된 요청도 400을 반환할 수 있습니다.

먼저 다음 정보를 남깁니다. API 키, Authorization 헤더, 개인 대화 내용은 공유 자료에서 제외하세요.

| 확인할 정보 | 확인하는 이유 |
|---|---|
| 오류 원문과 beta 이름 | 어떤 기능이 거부됐는지 특정합니다. 메시지에 이름이 없으면 요청을 만드는 쪽의 기록이 더 필요합니다. |
| 실패 시각과 요청 ID | OpenClaw, 프록시, 제공업체 기록에서 같은 요청을 찾습니다. |
| OpenClaw 버전과 실행 중인 Gateway의 위치 | 터미널과 서비스가 다른 설치나 설정을 사용하지 않는지 확인합니다. |
| 대화에서 선택한 `provider/model` | 기본 모델과 실제 실패한 대화의 모델이 같은지 확인합니다. |
| 접속 주소의 호스트와 API 방식 | Anthropic 직접 API, 호환 프록시, 관리형 클라우드를 구분합니다. |
| 오류 직전 변경한 기능 또는 설정 | 추가한 헤더, 모델 옵션, 프록시 정책을 좁혀 봅니다. |

Gateway가 실행되는 컴퓨터에서 다음 읽기 전용 명령으로 시작할 수 있습니다.

```bash
openclaw --version
openclaw config file
openclaw gateway status
openclaw logs --follow
```

`logs --follow`는 새 로그를 계속 표시하므로 필요한 오류를 확인한 뒤 `Ctrl+C`로 종료합니다. 외부에 붙여 넣기 전 비밀값과 개인 정보를 지우세요. 실패한 대화에서는 `/model status`로 그 대화의 실제 선택도 확인합니다. 기본 모델을 바꿔도 이미 열린 대화가 같은 모델을 사용하는지 별도 확인이 필요합니다.

[한국어 공식 문제 해결 안내](https://docs.openclaw.ai/ko/gateway/troubleshooting)는 `Runtime: running`, `Connectivity probe: ok` 등을 Gateway의 정상 신호로 설명합니다. 이는 모델 제공업체가 beta 기능까지 받아들였다는 뜻은 아닙니다.

## Claude를 쓰더라도 접속 방식에 따라 수정할 곳이 다릅니다

`Claude`라는 모델 이름만으로 Anthropic 직접 API에 접속한다고 볼 수 없습니다. 실제 제공업체와 접속 주소에 맞춰 기능 지원을 확인하세요.

| 실제 연결 | 먼저 확인할 대상 | 피해야 할 변경 |
|---|---|---|
| Anthropic 직접 API | 오류에 나온 beta의 정확한 이름, 모델·API 지원, 조직의 사용 자격 | 필요한 beta와 인증 관련 값을 한꺼번에 제거하기 |
| Anthropic Messages 호환 프록시 | 사용자 지정 제공업체 ID, `baseUrl`, 명시적 `anthropic-beta`, 프록시가 추가하는 값 | 주소만 바꾸고 직접 API의 기능이 모두 그대로 지원된다고 가정하기 |
| Amazon Bedrock | `amazon-bedrock` 설정, AWS 인증, 리전, 선택한 모델과 API | Anthropic 키나 표준 beta 헤더를 그대로 옮기기 |
| Claude Platform on AWS | Anthropic이 운영하는 해당 서비스의 인증과 기능 지원 | AWS에서 실행된다는 이유로 Bedrock과 같은 것으로 취급하기 |
| Vertex AI의 Claude | Claude를 호출하는 실제 어댑터, Google Cloud 인증, 모델·리전별 기능 | OpenClaw의 Gemini용 `google-vertex`를 Claude의 대체 설정으로 쓰기 |

현재 [OpenClaw 사용자 지정 제공업체 문서](https://docs.openclaw.ai/concepts/model-providers/custom-providers)는 `api: "anthropic-messages"`를 사용하는 비직접 연결에서 암묵적으로 추가되는 Anthropic beta 헤더를 억제한다고 설명합니다. 정식 `anthropic` 제공업체와 공개 `api.anthropic.com` 호스트에 대한 직접 연결인지가 판단에 들어갑니다. 반면 `models.providers.<id>.headers["anthropic-beta"]`에 **직접 적은 헤더**는 프록시가 요구하는 지원 기능을 위해 사용할 수 있습니다. 호환 연결인데 오류가 계속된다면 수동 헤더와 프록시 정책을 먼저 살펴볼 이유가 여기에 있습니다. 설치된 버전의 동작도 현재 문서와 같은지 확인해야 합니다.

AWS에서는 [Claude Platform on AWS의 비교표](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws)가 중요한 구분을 제공합니다. Anthropic이 운영하는 Claude Platform on AWS는 기능별 제한 아래 표준 `anthropic-beta`를 지원하지만, AWS가 운영하는 Bedrock은 같은 헤더를 지원하지 않습니다. 그렇다고 모든 Bedrock Claude 호출이 Converse라는 뜻도 아닙니다. [현재 OpenClaw Bedrock 문서](https://docs.openclaw.ai/providers/bedrock)는 Opus 5 등의 Messages API 연결도 설명합니다. 사용 중인 모델의 API와 지원 기능에 맞춰 수정하세요.

[Vertex AI의 Claude 안내](https://platform.claude.com/docs/en/build-with-claude/claude-on-vertex-ai)는 Google Cloud 인증, URL에 들어가는 모델, 요청 본문의 `anthropic_version: "vertex-2023-10-16"`을 설명합니다. 이것만으로 모든 beta 기능이 금지된다고 단정할 수는 없습니다. 한편 [OpenClaw의 Google 제공업체 문서](https://docs.openclaw.ai/providers/google)에서 `google-vertex`는 Gemini 연결입니다. Claude 오류를 고치기 위해 이 제공업체로 바꾸면 모델과 연결 자체가 달라집니다. Claude용 어댑터나 프록시를 운영한다면 그 구현의 기능 매핑을 확인해야 합니다.

## beta를 추가한 곳을 찾아 해당 설정만 수정하세요

beta 헤더는 설정 파일에 직접 적었을 수도 있고, 기능을 켰을 때 OpenClaw가 자동으로 만들었을 수도 있습니다. 여러 beta 이름을 쉼표로 묶거나 헤더를 반복해서 보낼 수 있으므로, 첫 번째 값만 확인하고 끝내지 마세요. [Anthropic의 헤더 형식](https://platform.claude.com/docs/en/api/beta-headers)을 기준으로 오류에 나온 이름이 어디에 들어갔는지 찾습니다.

![수동 헤더, 기능 옵션, 프록시 정책에서 beta가 추가되는 위치를 구분하는 개념 그림](https://blog.laozhang.ai/posts/ko/openclaw-invalid-beta-flag/img/beta-sources.webp)

### 수동 헤더라면 거부된 값만 제거합니다

`openclaw config file`이 보여 준 활성 설정을 사용하고, 변경 전 원래 값은 비밀값이 노출되지 않는 안전한 위치에 보관하세요. 현재 [config CLI](https://docs.openclaw.ai/cli/config)의 `config get`은 비밀값을 가린 설정을 읽습니다. 점이나 대괄호가 포함된 경로는 zsh 같은 셸에서 따옴표로 감싸야 합니다.

다음은 **사용자 지정 제공업체 ID가 실제로 `my-proxy`인 경우**의 조회 예시입니다. 다른 ID를 사용한다면 경로 안의 `my-proxy`를 실제 값으로 바꿉니다.

```bash
openclaw config get 'models.providers["my-proxy"].api'
openclaw config get 'models.providers["my-proxy"].baseUrl'
openclaw config get 'models.providers["my-proxy"].headers["anthropic-beta"]'
```

확인한 헤더에 거부된 값 하나만 있고, 그 기능이 작업에 필요하지 않으며, 인증에도 필요한 값이 아니라면 해당 필드를 제거할 수 있습니다.

```bash
openclaw config unset 'models.providers["my-proxy"].headers["anthropic-beta"]'
openclaw config validate
```

여러 기능이 들어 있다면 이 `unset` 명령으로 필드 전체를 지우지 마세요. 활성 설정에서 거부된 이름만 빼고 지원되는 나머지 값은 보존한 뒤 검사합니다. API 키, `Authorization`, `baseUrl`, 모델 ID는 이 작업에서 변경할 대상이 아닙니다.

`unset`은 해당 경로가 없으면 종료 코드 1과 함께 변경하지 않을 수 있습니다. 이때 임의로 다른 필드를 지우지 말고, 자동 생성된 헤더인지 또는 프록시에서 추가한 값인지 확인합니다. 읽기 전용 환경이나 Nix 관리 설정이라 쓰기가 거부되면 해당 환경의 설정 관리 방식을 사용하세요.

### 자동으로 추가됐다면 헤더와 기능 옵션을 함께 봅니다

현재 [OpenClaw Anthropic 문서](https://docs.openclaw.ai/providers/anthropic)는 직접 API 키 연결에서 모델별 기능을 위해 beta가 자동으로 추가되는 경우를 설명합니다. 예를 들어 선택적으로 켜는 서버 측 압축은 `anthropicServerCompaction`과 연결되며, `compact-2026-01-12` 헤더뿐 아니라 요청 본문의 `context_management`도 사용합니다. 헤더만 지우고 기능 본문을 남기는 수정은 적절하지 않을 수 있습니다.

**거부된 기능이 실제로 서버 측 압축이고, 압축을 사용하지 않아도 되는 경우**에는 해당 모델의 옵션을 끄는 방식으로 조정합니다. 아래는 문서에 나온 `anthropic/claude-sonnet-4-6`의 설정 예시이며, 다른 모델에는 실제 설정 경로를 사용해야 합니다.

```bash
openclaw config set 'agents.defaults.models["anthropic/claude-sonnet-4-6"].params.anthropicServerCompaction' false
openclaw config validate
```

압축이 필요한 긴 작업이라면 바로 끄는 대신 선택한 모델, 직접 API 연결 여부, 조직의 기능 접근 권한을 먼저 확인하세요. 기능을 끄면 이전과 같은 긴 대화 처리를 기대할 수 없으므로, 원래 작업에 필요한 기능까지 확인해야 수정이 완료됩니다.

모든 자동 beta가 선택적 압축은 아닙니다. 같은 문서는 특정 모델의 직접 API 키 요청에서 `server-side-fallback-2026-07-01`을 추가하는 동작을 설명하며, OAuth·프록시·관리형 클라우드와 적용 범위를 구분합니다. 오류에 나온 이름이 다르면 압축 옵션을 바꿔도 관련 없는 수정입니다. 인증 방식에 붙는 값이나 필수 기능이라면 헤더를 강제로 삭제하지 말고, 지원되는 버전과 연결 방식에 맞춰야 합니다.

### 프록시가 추가한 값은 프록시에서 수정해야 합니다

OpenClaw 설정에 해당 beta가 없는데도 요청에 나타난다면 프록시의 전달 정책이나 어댑터가 추가하는 값을 확인하세요. 운영자에게 실패 시각, 요청 ID, 모델, 거부된 beta 이름을 전달하면 같은 요청을 찾는 데 도움이 됩니다. 요청 본문 전체나 API 키를 전달할 필요는 없습니다.

클라이언트 설정을 수정한 뒤에도 프록시가 같은 값을 다시 넣으면 오류가 계속됩니다. 반대로 프록시가 특정 beta를 지원하는 경우에는 그 기능을 유지해야 합니다. 프록시 사용 자체가 잘못됐다고 판단하거나 모든 기능을 끄는 대신, **선택한 기능을 이 연결에서 어떤 형식으로 전달하는지** 확인하세요.

## `context1m: false`는 현재의 공통 해결책이 아닙니다

오래된 안내에서 `context-1m-2025-08-07`을 지우거나 `context1m`을 끄라고 설명할 수 있습니다. 그러나 [현재 OpenClaw의 1M 컨텍스트 안내](https://docs.openclaw.ai/providers/anthropic#1m-context-window)는 문서에 명시된 정식 1M 지원 모델에서 `params.context1m`이 아무 동작도 하지 않는 호환 설정이며, 퇴역한 헤더를 더 이상 보내지 않는다고 설명합니다. 기존 `anthropicBeta` 설정에 같은 값이 있어도 요청 헤더 처리 과정에서 제거됩니다.

따라서 현재 문서와 같은 동작을 하는 설치에서 `context1m: false`만 바꾸는 것은 다른 beta 거부를 해결하는 방법이 아닙니다. 실제 오류에 퇴역한 헤더가 보인다면 오래된 실행 버전, 직접 작성한 헤더, 외부 프록시 중 어디에서 값이 남는지 찾아야 합니다. 최신 터미널 CLI와 오래된 Gateway 서비스가 동시에 설치돼 있지 않은지도 확인하세요.

Claude CLI는 별도의 컨텍스트 예산을 사용합니다. 직접 API 모델의 1M 지원을 CLI 연결에 그대로 적용해서도 안 됩니다. 또한 `HTTP 429: rate_limit_error: Extra usage is required for long context requests`는 400 beta 오류와 다른 증상입니다. [공식 한국어 문제 해결 문서](https://docs.openclaw.ai/ko/gateway/troubleshooting)의 긴 컨텍스트 사용 자격 안내에 따라 처리하며, 정식 1M 모델에서 `context1m: false`로 창 크기가 줄어든다고 기대하지 마세요.

## 설정 검사, Gateway 반영, 실제 응답을 각각 확인하세요

수정한 뒤에는 다음 순서로 확인합니다. **검사 통과는 API 기능 지원의 증거가 아닙니다.** 현재 config CLI는 Gateway를 시작하지 않고 설정을 검사하며, 열린 형태의 모델 매개변수가 설정 형식상 유효해도 제공업체는 이를 거부할 수 있습니다. [검사와 변경 적용 범위](https://docs.openclaw.ai/cli/config)

1. `openclaw config validate`에서 수정한 설정이 유효한지 확인합니다. 오류가 나면 먼저 해당 필드를 고치고 모델 요청은 진행하지 않습니다.
2. 변경 명령의 재로드·재시작 안내를 확인합니다. 재시작이 필요하다면 올바른 Gateway 호스트와 설치에서 `openclaw gateway restart`를 실행한 뒤 상태와 로그를 확인합니다. 변경 안내 자체는 실행 중인 프로세스에 적용됐다는 확인이 아닙니다.
3. 실패한 대화의 제공업체와 모델이 유지됐는지 확인합니다. 같은 연결에서 민감한 정보 없는 짧은 요청을 한 번 보내 응답이 끝까지 완료되는지 봅니다. 이 단계는 실제 모델 사용에 해당하므로 자신의 계정과 비용 조건을 확인하고 진행합니다.
4. beta 오류가 사라진 뒤 원래 필요한 기능을 사용하는 작업도 확인합니다. 압축이나 도구 기능을 포기한 짧은 응답만으로 원래 작업 전체가 복구됐다고 판단하지 않습니다.

![설정 검사, Gateway 반영, 같은 모델의 응답 완료, 필요한 기능 확인을 구분한 개념 그림](https://blog.laozhang.ai/posts/ko/openclaw-invalid-beta-flag/img/recovery-checks.webp)

| 확인 결과 | 다음 행동 또는 종료 조건 |
|---|---|
| 설정 검사 실패 | 해당 설정부터 수정합니다. 무효한 설정으로 재시작을 반복하지 않습니다. |
| Gateway는 정상인데 같은 beta 400이 반복됨 | 같은 값이 계속 추가되는 위치를 확인합니다. 동일 요청을 반복하는 것으로 해결되지 않습니다. |
| 401이나 인증 헤더 누락으로 오류가 바뀜 | beta 수정과 인증 변경을 분리하고 [OpenClaw 401 인증 오류 해결](https://blog.laozhang.ai/ko/posts/openclaw-401-authentication-error) 절차로 전환합니다. |
| 다른 400 메시지가 나옴 | 새 메시지의 필드·모델·API 조건을 확인합니다. beta 문제라고 계속 가정하지 않습니다. |
| 같은 연결에서 응답 완료, 필요한 기능도 정상 | 해당 실패 사례의 복구 확인을 마칩니다. 모든 모델이나 계정의 지원을 보장하는 결과는 아닙니다. |
| beta 기능이 꼭 필요하지만 현재 연결에서 지원되지 않음 | 삭제를 반복하지 말고 제공업체 또는 어댑터 운영자에게 지원 형식과 접근 조건을 확인합니다. |

서비스가 최신 설정을 쓴 오래된 바이너리의 재시작을 막는다면 보호 장치를 우회하지 마세요. 공식 문제 해결 안내에 따라 설치 경로와 버전을 맞춥니다. `openclaw doctor`는 구성·서비스 상태를 진단하는 데 도움이 되지만, `doctor --fix`가 제공업체의 beta 사용 권한이나 기능 지원을 만들어 주는 것은 아닙니다.

접속 방식 자체가 아직 정해지지 않았다면 [OpenClaw 모델 설정 안내](https://blog.laozhang.ai/ko/posts/openclaw-llm-setup)에서 인증과 모델 선택부터 확인할 수 있습니다. 이미 동작하던 연결의 beta 오류를 고치는 경우에는 원래의 제공업체, 인증, 필요한 기능을 보존하는 수정부터 진행하세요.

## 자주 묻는 질문

### `invalid beta flag`가 나오면 API 키를 새로 발급해야 하나요?

먼저 키를 바꿀 필요는 없습니다. Anthropic 직접 API에서 이 메시지와 `400 invalid_request_error`가 나오면 beta 이름과 조직의 기능 접근 조건을 확인합니다. 키가 유효한지와 특정 기능을 사용할 수 있는지는 다른 문제입니다. 실제 메시지가 401로 바뀌면 인증을 별도로 점검하세요. [Anthropic beta 헤더 설명](https://platform.claude.com/docs/en/api/beta-headers)

### 모든 beta를 지우면 더 안전하게 해결되나요?

필요한 기능이나 인증에 영향을 줄 수 있으므로 전체 삭제를 공통 해결책으로 쓰지 않습니다. 거부된 이름을 찾아 수동 값인지 자동 기능인지 구분하세요. 여러 beta가 한 필드에 있다면 해당 값만 조정하고, 기능 옵션이 본문까지 만든다면 옵션과 본문이 일치하도록 수정해야 합니다.

### `beta_features: []`를 추가하면 되나요?

모든 OpenClaw 제공업체에 통하는 해결 필드로 볼 수 없습니다. 지금 확인한 공식 문서는 사용자 지정 제공업체의 명시적 `anthropic-beta` 헤더와 모델별 기능 옵션을 설명합니다. 다른 SDK의 필드를 그대로 추가하기보다 실제 설치와 어댑터에서 지원하는 설정을 사용하세요. [사용자 지정 제공업체 설정](https://docs.openclaw.ai/concepts/model-providers/custom-providers)

### 재시작했는데도 같은 오류가 나면 무엇을 보내야 하나요?

비밀값을 지운 오류 원문, beta 이름, OpenClaw 버전, 실패 시각, 요청 ID, 제공업체와 모델, 접속 호스트, 수정한 필드 이름을 보내면 됩니다. 프록시가 있다면 OpenClaw에서 보낸 값과 프록시가 추가한 값을 구분해 달라고 요청하세요. API 키와 전체 개인 대화 기록은 보내지 마세요.
