Originally published at claudeguide.io/claude-api-error-context-length-exceeded
Claude API context_length_exceeded (invalid_request_error): 원인과 해결법
Claude API context_length_exceeded invalid_request_error는 messages 누적 토큰 + max_tokens가 모델의 context window 초과에 발생합니다 (2026 기준). 컨텍스트 길이 초과이며, 재시도하지 말고 요청 자체를 수정해야 합니다. 이 글은 5가지 흔한 원인과 Python/TypeScript 코드 예시를 다룹니다.
전반적인 Claude API 에러 처리 패턴은 Claude API Error Handling 가이드를 참고하세요.
무엇을 의미하는가?
context_length_exceeded 에러 서브타입는 messages 누적 토큰 + max_tokens가 모델의 context window 초과을 의미합니다. Anthropic API의 에러 응답 본문에는 error.type이 "invalid_request_error"로 명시되며, error.message에 구체적 사유가 옵니다.
응답 예시:
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "..."
}
}
흔한 원인 5가지
- Sonnet 4.5 1M context를 사용 중인데 max_tokens가 1M-요청토큰보다 큼
- 긴 system prompt + 누적된 conversation history
- PDF/document 첨부의 token 사용량 미고려
- Tool result가 messages에 누적되어 폭증
해결 코드 (Python)
python
import anthropic
# Pre-compute token usage with the count_tokens endpoint
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-sonnet-4-5",
messages=conversation_history,
system="You are a helpful assistant.",
)
input_tokens = response.input_tokens
context_window = 200_000 # or 1_000_000 for Sonnet 4.5 1M context
budget = context_window - input_tokens
if budget < 1024:
# Trim conversation: drop oldest messages
while budget < 4096 and len(conversation_history)
Top comments (0)