메인 콘텐츠로 건너뛰기

간단한 답변

오류는 다음과 같이 표시됩니다.
429라고 표시되지만, 이는 요청 제한이 아닙니다. 대화 기록의 추론 블록이 공급자의 서명 검증에 실패했습니다. 모든 재시도에서 동일한 기록이 전송되므로 클라이언트 측 자동 재시도는 항상 실패합니다. 해결 방법: 새 대화를 시작하십시오. 에이전트, 모델 또는 키 설정을 변경할 필요는 없습니다.

일반적인 증상

Claude Code, Claude Agent SDK 또는 Cherry Studio와 같은 클라이언트의 Claude Agent 모드에서 사고 기능이 활성화된 경우:
  • 주요 대화에서 응답이 전혀 생성되지 않습니다. 클라이언트에는 “요청이 너무 많습니다” 또는 “9초 후 재시도 중(5/10)“과 같은 메시지가 표시되며, 10번 재시도한 후 중단됩니다.
  • 콘솔 로그에는 이 키에 대해 성공적으로 처리되고 과금된 요청이 표시되지만, 모두 token 수가 적은 소규모 요청입니다. 이러한 요청은 클라이언트가 Small 모델로 보내는 보조 요청(제목, 의도 확인 등)입니다. 대화 기록을 포함하지 않으므로 성공합니다.
  • 같은 대화에서 “계속”을 클릭하거나 문장을 바꾸어 다시 입력해도 동일한 오류가 발생합니다. 새 대화를 시작하면 즉시 정상적으로 작동합니다.

이 문제가 발생하는 이유

thinking이 활성화되면 각 Claude 응답은 thinking 블록으로 시작하며, 이 블록에는 signature이 포함됩니다. 다음 턴에서 클라이언트는 이전 thinking 블록을 서명을 포함하여 수신한 그대로 대화 기록에 다시 보내야 합니다. 프로바이더는 thinking 콘텐츠가 변경되지 않았는지 확인하기 위해 서명을 검증합니다. 다음 중 하나라도 발생하면 서명 검사가 실패합니다.

서명이 누락되었거나 비어 있음

클라이언트가 대화를 저장할 때 서명을 저장하지 않아 빈 signature 문자열을 다시 보내거나 필드를 생략했습니다. 여러 클라이언트에서 이러한 종류의 버그가 발생했으며, 특히 thinking을 파일 읽기와 같은 도구 호출과 함께 사용할 때 자주 발생합니다.

변경된 thinking 콘텐츠

기록을 수동으로 편집하거나, 클라이언트 측에서 기록을 압축 또는 잘라내거나, 프록시가 요청 본문의 형식을 변경하면 thinking 콘텐츠와 해당 서명이 서로 일치하지 않게 됩니다.

대화 중 모델 전환

모델 A가 thinking 블록을 생성한 후 동일한 대화를 모델 B로 계속하면, 모델 B가 모델 A가 남긴 서명을 허용하지 않을 수 있습니다.

대화 중 키 또는 그룹 전환

대화 도중 키 또는 token 그룹을 변경하면 이후 요청이 다른 경로를 통해 처리될 수 있으며, 해당 경로에서는 이전 서명이 검증을 통과하지 못할 수 있습니다.
오류에 표시된 messages.1.content.0은 기록에 있는 첫 번째 assistant 응답의 첫 번째 콘텐츠 블록을 가리키며, 이는 시작 턴의 thinking 블록입니다. 이 블록이 손상되면 해당 대화의 이후 모든 턴이 실패합니다.

수정 방법

1

새 대화 시작

클라이언트에서 새 대화를 만들고, 파일을 다시 업로드한 다음 다시 요청합니다. 동일한 에이전트, 모델, 키를 유지합니다. 이것이 가장 빠르고 안정적인 해결 방법입니다.
2

대화당 하나의 모델과 하나의 키 사용

다른 모델이나 키가 필요하면 새 대화에서 전환합니다. 이미 추론 기록이 포함된 대화 내에서는 전환하지 마십시오.
3

기록을 직접 편집하지 않기

이전 어시스턴트 메시지의 추론 내용을 편집하거나 삭제하지 마십시오. 컨텍스트를 줄이려면 클라이언트의 기본 압축 기능을 사용하거나 새 대화를 시작합니다.
4

클라이언트 업데이트

새 대화에서 몇 차례 대화를 주고받은 후 오류가 다시 발생한다면, 기록을 저장할 때 클라이언트가 서명을 누락하고 있을 가능성이 큽니다. 최신 버전으로 업데이트하고 재현 단계를 클라이언트 개발자에게 보고합니다.
자체 코드에서 API를 호출하는 경우: 기록을 재생할 때 각 thinking 블록을 signature 필드를 포함하여 있는 그대로 유지하거나 블록 전체를 삭제해야 합니다. 추론 텍스트만 유지하고 서명을 삭제해서는 안 됩니다. 공식 SDK를 사용하는 경우 이전 응답의 content 배열을 messages에 변경하지 않고 그대로 넣습니다.

FAQ

아닙니다. 요청 내용이 유효하지 않은 것이며, 요청 속도와는 관련이 없습니다. 속도를 늦추거나 나중에 다시 시도해도 해결되지 않습니다. Invalid signature in thinking block가 표시되면 새 대화를 시작하십시오.
아닙니다. 모델이 무엇인가를 생성하기 전에 서명 확인이 실패하므로 이러한 요청에는 비용이 발생하지 않으며 콘솔 로그에도 표시되지 않습니다. 표시되는 과금 항목은 성공한 요청에서 발생한 것이며, 대개 클라이언트의 소규모 보조 요청입니다.
동일한 대화 내에서 thinking을 꺼도 도움이 되지 않을 수 있습니다. 대화 기록에 이미 포함된 thinking 블록이 계속 전송되기 때문입니다. 새 대화를 시작하는 방법이 더 확실합니다. 작업에 thinking이 필요하지 않다면 새 대화에서 시작하여 -thinking 접미사가 없는 모델로 전환할 수도 있습니다.
오류가 발생한 대략적인 시간(시간대 포함, 예: 17:00 (UTC+8)), 클라이언트와 해당 버전, 모델 이름을 함께 지원팀에 문의하십시오. 시간으로 대화의 요청을 찾아 문제를 조사하는 데 도움을 드릴 수 있습니다.

관련 문서

Claude Effort 및 사고 가이드

사고 기능 켜기 및 끄기, 스트리밍 이벤트, 서명 전달

Claude 네이티브 형식: 스트리밍 및 비스트리밍 응답

thinking 블록의 구조 및 signature_delta

Claude Code

Claude Code에서 APIYI 설정

API 동시 실행 수 제한이란 무엇입니까?

동시 실행 수 및 요청 제한 설명