> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Как исправить ошибку недействительной подписи thinking в Claude?

> Когда Claude Code или клиент Claude Agent сообщает об ошибке «Invalid signature in thinking block» с кодом 429, дело не в лимите запросов: блок thinking в истории диалога потерял подпись. Чтобы исправить это, начните новый диалог.

## Краткий ответ

Ошибка выглядит так:

```text theme={null}
API Error: Request rejected (429) · messages.1.content.0: Invalid `signature` in `thinking` block
```

Хотя указан код 429, **это не лимит запросов**. Блок рассуждений в **истории диалога не прошёл проверку подписи провайдера**. При каждой повторной попытке отправляется та же история, поэтому автоматические повторные попытки на стороне клиента всегда завершаются сбоем.

**Решение: начните новый диалог.** Вам не нужно менять агента, модель или настройки ключа.

## Типичные симптомы

При использовании Claude Code, Claude Agent SDK или режима Claude Agent в таких клиентах, как Cherry Studio, с включенным thinking:

* В основном диалоге ответ так и не появляется. Клиент отображает сообщения вроде «too many requests» или «retrying in 9 seconds (5/10)» и прекращает попытки после 10 повторов.
* В логах консоли **действительно отображаются успешные тарифицированные запросы** для этого ключа, но все они представляют собой небольшие запросы с малым количеством tokens. Это вспомогательные запросы, которые клиент отправляет с помощью своей модели Small (заголовки, проверка намерений и т. д.). Они не передают историю сообщений, поэтому выполняются успешно.
* Нажатие «continue» или перефразирование в том же диалоге приводит к той же ошибке. Новый диалог работает сразу же.

## Почему это происходит

При включенном режиме рассуждений каждый ответ Claude начинается с блока `thinking`, содержащего `signature`. На следующем шаге клиент должен отправить предыдущий блок `thinking` обратно в историю **в точности в том виде, в каком он был получен, включая подпись**. Провайдер проверяет подпись, чтобы убедиться, что содержимое рассуждений не было изменено.

Проверка подписи завершается сбоем в любом из следующих случаев:

<CardGroup cols={2}>
  <Card title="Отсутствующая или пустая подпись" icon="file-x">
    Клиент не сохранил подпись при сохранении диалога, поэтому отправляет обратно пустую строку `signature` или вовсе опускает это поле. Подобная ошибка возникала в нескольких клиентах, чаще всего когда рассуждения сочетаются с вызовами инструментов, такими как чтение файлов.
  </Card>

  <Card title="Измененное содержимое рассуждений" icon="pencil">
    Ручное редактирование истории, сжатие или обрезка истории на стороне клиента либо прокси-сервер, изменяющий форматирование тела запроса, — все это приведет к расхождению между содержимым рассуждений и подписью.
  </Card>

  <Card title="Смена модели в ходе диалога" icon="shuffle">
    Если модель A создала блок рассуждений, а вы продолжаете тот же диалог с моделью B, модель B может не принять подпись, оставленную моделью A.
  </Card>

  <Card title="Смена ключей или групп в ходе диалога" icon="key">
    Если вы измените ключ или группу token посреди диалога, последующие запросы могут быть направлены по другому маршруту, и ранее созданные подписи могут не пройти там проверку.
  </Card>
</CardGroup>

`messages.1.content.0` в ошибке указывает на **первый блок содержимого первого ответа ассистента** в истории, то есть на блок рассуждений из первого раунда диалога. Если он поврежден, каждый последующий шаг в этом диалоге завершится сбоем.

## Как это исправить

<Steps>
  <Step title="Начните новый диалог">
    Создайте новый диалог в вашем клиенте, загрузите файлы заново и повторите запрос. Используйте того же агента, модель и ключ. Это самое быстрое и надежное решение.
  </Step>

  <Step title="Используйте одну модель и один ключ на диалог">
    Если вам требуется другая модель или ключ, переключитесь в новом диалоге. Не переключайте их внутри диалога, который уже содержит историю рассуждений.
  </Step>

  <Step title="Не редактируйте историю вручную">
    Не редактируйте и не удаляйте содержимое рассуждений в прошлых сообщениях ассистента. Чтобы сократить контекст, воспользуйтесь встроенной в клиент функцией сжатия или начните новый диалог.
  </Step>

  <Step title="Обновите ваш клиент">
    Если после нескольких реплик в новом диалоге ошибка возникает снова, клиент, скорее всего, отбрасывает сигнатуры при сохранении истории. Обновите его до последней версии и передайте шаги для воспроизведения разработчикам клиента.
  </Step>
</Steps>

<Tip>
  **Если вы вызываете API из собственного кода**: при повторной отправке истории либо сохраняйте каждый блок `thinking` **в точности как есть** (включая поле `signature`), либо **удалите весь блок целиком**. Никогда не оставляйте текст рассуждений, отбрасывая сигнатуру. При использовании официального SDK передавайте массив `content` из предыдущего ответа обратно в `messages` без изменений.
</Tip>

## Часто задаваемые вопросы

<AccordionGroup>
  <Accordion title="В ошибке указан код 429. Следует ли снизить частоту запросов?">
    Нет. Содержимое запроса некорректно; это никак не связано с частотой запросов. Снижение интенсивности запросов или повторная попытка позже не помогут. Если вы видите `Invalid signature in thinking block`, начните новый диалог.
  </Accordion>

  <Accordion title="Взимается ли плата за неудачные запросы?">
    Нет. Проверка подписи завершается сбоем до того, как модель успевает что-либо сгенерировать, поэтому эти запросы бесплатны и не отображаются в логах консоли. Записи о тарификации, которые вы видите, относятся к успешным запросам — обычно это небольшие вспомогательные запросы клиента.
  </Accordion>

  <Accordion title="Можно ли обойти проблему, отключив thinking?">
    Отключение thinking в рамках того же диалога может не помочь, поскольку блоки thinking, уже присутствующие в истории, всё равно отправляются. Надежнее начать новый диалог. Если для задачи не требуется thinking, вы также можете переключиться на модель без суффикса `-thinking`, начав новый диалог.
  </Accordion>

  <Accordion title="Ошибка продолжает повторяться даже в новых диалогах. Что делать?">
    Обратитесь в службу поддержки, указав приблизительное время возникновения ошибки (с часовым поясом, например `17:00 (UTC+8)`), клиент и его версию, а также название модели. Мы сможем найти запросы этого диалога по времени и помочь разобраться в ситуации.
  </Accordion>
</AccordionGroup>

## Связанная документация

<CardGroup cols={2}>
  <Card title="Руководство по Claude Effort и Thinking" icon="brain" href="/ru/api-capabilities/claude-effort-thinking">
    Включение и отключение thinking, события потоковой передачи и передача сигнатур обратно
  </Card>

  <Card title="Нативный формат Claude: потоковые и непотоковые ответы" icon="sparkles" href="/ru/api-capabilities/claude-response-handling">
    Структура блоков `thinking` и `signature_delta`
  </Card>

  <Card title="Claude Code" icon="terminal" href="/ru/scenarios/programming/claude-code">
    Настройка APIYI в Claude Code
  </Card>

  <Card title="Каковы лимиты параллельных запросов API?" icon="gauge" href="/ru/faq/api-concurrency">
    Подробно о параллельных запросах и лимитах запросов
  </Card>
</CardGroup>
