Claude Platform Docs

Обработка ошибок Compliance API

Все сообщения об ошибках Compliance API с указанием причины и способа устранения, упорядоченные по коду состояния HTTP.

На этой странице перечислены ответные сообщения, которые возвращает каждая документированная конечная точка Compliance API, их причина и способ устранения.

Compliance API возвращает ошибки в стандартном формате ошибок Anthropic: код состояния, отличный от 2xx, заголовок ответа request-id и тело JSON с объектом error, содержащим type и message. Указывайте значение заголовка request-id при обращении в службу поддержки.

{
  "error": {
    "type": "authentication_error",
    "message": "The API key provided is invalid or has been revoked."
  }
}

На этой странице локальные сеансы выполняются на машинах пользователей, а удалённые сеансы — в облаке; см. Получение транскриптов сеансов.

Сопоставляйте по error.type, а не по строке сообщения. Сообщения достаточно стабильны, чтобы копировать их в регламенты (runbooks), но со временем могут быть переформулированы; значения типа являются частью контракта API. У конечных точек локальных сеансов есть несколько документированных исключений, когда ответы с одинаковым типом различаются по сообщению; каждое из них отмечено там, где оно применимо.

Следующая таблица позволяет с первого взгляда понять, следует ли повторять запрос. В каждом последующем разделе приведено дословное тело ошибки и способ устранения.

СтатусПовторять?Когда
400 Bad RequestНетИсправьте запрос и отправьте повторно.
401 UnauthorizedНетИсправьте или замените ключ, затем отправьте повторно.
403 ForbiddenНетДобавьте недостающую область действия (scope) или используйте ключ правильного типа, затем отправьте повторно.
404 Not FoundОбычно нетРесурс был удалён или никогда не существовал; удалите его из своей очереди. Исключения: на конечных точках локальных сеансов сообщение Local sessions are not available. (возвращаемое при каждом вызове, включая список) означает, что конечные точки в данный момент недоступны для вашей родительской организации, а не то, что сеанс исчез; сохраните идентификаторы в очереди и см. Локальный сеанс не найден. Удалённый сеанс, всё ещё находящийся в статусе pending, возвращает 404 на своей конечной точке сообщений, пока не запустится; см. Удалённый сеанс не найден.
409 ConflictНетЗапрос конфликтует с текущим состоянием ресурса; устраните конфликт (например, отсоедините дочерние ресурсы), затем повторите.
429 Too Many RequestsДа, после retry-afterПодождите указанное в retry-after количество секунд, затем повторите; не продвигайте курсор.
500 Internal Server ErrorЗависит от x-should-retryПроверьте заголовок ответа x-should-retry перед повторной попыткой.
502, 503, 504, 529Да, с задержкой (backoff)Временная ошибка; повторите с экспоненциальной задержкой. Исключение: некоторые ответы 503 локальных сеансов не являются временными. См. Локальные сеансы временно недоступны.

400 Bad Request

Запрос был синтаксически корректным, но содержал параметр, который сервер отклонил. Исправьте параметр и повторите.

Неверный формат метки времени

Тип: invalid_request_error

The `created_at.gte` parameter contains an invalid timestamp format. Timestamps must be provided in RFC 3339 format e.g., "2024-03-01T00:00:00Z". Got "2024-01-01".

Причина: Значение created_at.* или updated_at.* (.gte, .gt, .lte, .lt) не удалось разобрать как дату и время. В сообщении указывается параметр, вызвавший ошибку, и повторяется отправленное значение.

Устранение: Отправьте полную метку времени RFC 3339, включая время и часовой пояс, например 2024-03-01T00:00:00Z или 2024-03-01T00:00:00+00:00.

Список локальных сеансов (GET /v1/compliance/apps/sessions/local) также возвращает 400 invalid_request_error, когда указаны обе временные границы и created_at.lt не строго позже created_at.gte. Тело выглядит так:

created_at.lt must be strictly after created_at.gte.

Отправьте created_at.lt позже, чем created_at.gte, или опустите одну из границ.

Неверный limit

Тип: invalid_request_error

The limit parameter must be between 1 and 1000, inclusive. Got 1500.

Причина: Параметр запроса limit находился вне допустимого диапазона. Граница, указанная в сообщении, отражает максимум для конкретной вызванной конечной точки.

Устранение: Отправьте limit в пределах диапазона, принимаемого конечной точкой. У каждой конечной точки списка свой диапазон limit; см. ограничения параметров на соответствующей странице справочника Compliance API.

Конечные точки транскриптов сеансов (GET /v1/compliance/apps/sessions/local/{session_id}/messages и GET /v1/compliance/apps/sessions/remote/{session_id}/messages) проверяют свои параметры усечения таким же образом: tool_use_input_max_bytes и tool_result_max_bytes принимают положительное количество байтов или -1 (максимум сервера), поэтому значение вроде 0 возвращает ту же ошибку 400 invalid_request_error.

Неверный идентификатор пагинации

Тип: invalid_request_error

Invalid `after_id`. No activity found for `after_id` "activity_invalid123"

Причина: Курсор after_id или before_id не удалось декодировать как непрозрачный курсор или разобрать как идентификатор активности.

Устранение: Рассматривайте курсоры пагинации как непрозрачные строки. Всегда копируйте значение first_id или last_id, возвращённое предыдущей страницей; останавливайтесь, когда has_more равно false. Не конструируйте курсоры из идентификаторов объектов.

Конечные точки каталога, проектов и сеансов (организации, пользователи, роли, разрешения ролей, группы, участники групп, проекты, вложения проектов, локальные и удалённые сеансы, а также сообщения сеансов) используют для пагинации непрозрачный токен page, а не after_id и before_id. Применим тот же совет: передавайте значение next_page из предыдущего ответа без изменений и останавливайтесь, когда has_more равно false (или, на конечных точках сеансов, которые не возвращают has_more, когда next_page равно null). Некорректный токен page возвращает ту же ошибку 400 invalid_request_error, что и некорректный after_id или before_id.

Две конечные точки локальных сеансов с пагинацией (список и конечная точка сообщений) возвращают следующую ошибку 400 invalid_request_error для любого значения page, которое они не могут декодировать, например для токена, который был усечён или изменён после того, как вы его сохранили, либо выданного другой конечной точкой или в рамках другой родительской организации. На конечной точке сообщений локального сеанса (GET /v1/compliance/apps/sessions/local/{session_id}/messages) каждый курсор page также привязан к сеансу и значению order, для которых он был выдан, поэтому курсор, выданный для другого сеанса или порядка сортировки, возвращает то же тело:

The page parameter is not a valid cursor for this request.

Курсоры на конечной точке сообщений также истекают через 24 часа после начала обхода (одного прохода по страницам). Истёкший курсор возвращает:

The page cursor has expired. Restart the walk without a page parameter; results will reflect the current retention boundary.

Для первого тела повторно отправьте неизменённое значение next_page из предыдущего ответа на ту конечную точку и тот сеанс, которые его выдали. Для истёкшего курсора начните заново без параметра page; новый обход отражает границу хранения, действующую на момент его начала, поэтому сообщения, вышедшие за пределы периода хранения за это время, больше не возвращаются (см. Получение транскрипта локального сеанса).

401 Unauthorized

Заголовок x-api-key отсутствовал или не соответствовал известному ключу. Действительный ключ с неправильными областями действия возвращает вместо этого 403 Forbidden.

Недействительный ключ API

Тип: authentication_error

The API key provided is invalid or has been revoked.

Причина: Ключ в x-api-key не существует, был удалён или отключён. Отсутствующий или пустой заголовок x-api-key возвращает то же тело, поэтому проверьте как ваше хранилище секретов, так и статус отзыва ключа.

Устранение: Проверьте значение ключа, убедитесь, что он не был удалён в claude.ai (Compliance Access Keys) или Claude Console (ключи Admin API), и подтвердите, что он включён. См. Настройка Compliance API.

403 Forbidden

Ключ в x-api-key действителен, но не имеет области действия, требуемой конечной точкой. В дословном сообщении перечислены области действия, которые есть у ключа (Got:), и области действия, требуемые конечной точкой (Needed:), так что вы можете проверить, что есть у ключа, не заглядывая повторно в Claude Console или claude.ai. Области действия Compliance Access Key неизменяемы после создания, поэтому каждое устранение недостаточной области действия предписывает создать новый ключ, а не редактировать существующий. Автономная организация Claude Console (не имеющая родительской организации) не может создать Compliance Access Key, поэтому способы устранения, требующие его, к ней не применимы; она может запрашивать только Activity Feed.

Недостаточная область действия: Activity Feed

Тип: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_activities']

Причина: Ключ без read:compliance_activities был использован для вызова GET /v1/compliance/activities. Есть два распространённых пути к этой ошибке:

  • Compliance Access Key (sk-ant-api01-...) был создан без области действия read:compliance_activities.
  • Ключ Admin API Claude Console (sk-ant-admin01-...) был создан, когда Compliance API не был включён для организации. Ключи, созданные, пока Compliance API не был включён, не имеют этой области действия; см. Настройка Compliance API.

Устранение: Области действия Compliance Access Key неизменяемы после создания. Создайте новый ключ, включающий read:compliance_activities, или используйте ключ Admin API Claude Console. См. Какой ключ вам нужен?, чтобы узнать условия, при которых ключ Admin API имеет эту область действия.

Недостаточная область действия: данные организации

Тип: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_org_data']

Причина: Ключ без read:compliance_org_data был использован для вызова конечной точки организаций, ролей, групп или действующих настроек. Есть два распространённых пути к этой ошибке:

  • Compliance Access Key (sk-ant-api01-...) был создан без области действия read:compliance_org_data.
  • Был использован ключ Admin API Claude Console (sk-ant-admin01-...). Ключи Admin API имеют только read:compliance_activities и не могут читать метаданные организации.

Устранение: Создайте новый Compliance Access Key с выбранной областью read:compliance_org_data. Ключи Admin API не могут читать метаданные организации; требуется Compliance Access Key.

Упразднённая область действия: настройки организации

Тип: permission_error

Missing required scopes. Got: ['read:compliance_org_settings'] Needed: ['read:compliance_org_data']

Причина: Область действия read:compliance_org_settings была упразднена 30 июня 2026 года. GET /v1/compliance/organizations/{organization_id}/settings теперь требует read:compliance_org_data, ту же область действия, что и другие конечные точки организаций, а упразднённая область действия больше ничего не авторизует. Compliance Access Key, имеющий только read:compliance_org_settings, возвращает эту ошибку при каждом вызове конечной точки настроек, даже если ключ работал до упразднения. Упразднённую область действия больше нельзя выбрать или предоставить при создании ключа.

Устранение: Области действия Compliance Access Key неизменяемы после создания. Создайте новый Compliance Access Key с выбранной областью read:compliance_org_data, обновите свою интеграцию для его использования, затем удалите старый ключ. Ключ, который уже имеет read:compliance_org_data, упразднением не затронут.

Недостаточная область действия: данные пользователей

Тип: permission_error

Missing required scopes. Got: ['read:compliance_activities'] Needed: ['read:compliance_user_data']

Причина: Ключ без read:compliance_user_data был использован для вызова конечной точки чатов, сообщений, файлов, проектов, сеансов, пользователей организации или участников групп. Есть два распространённых пути к этой ошибке:

  • Compliance Access Key (sk-ant-api01-...) был создан без области действия read:compliance_user_data.
  • Был использован ключ Admin API Claude Console (sk-ant-admin01-...). Ключи Admin API имеют только read:compliance_activities, и им нельзя предоставить read:compliance_user_data, поэтому они не могут вызывать конечные точки чатов, файлов, проектов, вложений проектов, сеансов, пользователей или участников групп.

Устранение: Используйте Compliance Access Key, созданный в claude.ai с выбранной областью read:compliance_user_data. Если запрос действительно должен относиться только к Activity Feed, направьте ключ Admin API на GET /v1/compliance/activities.

Недостаточная область действия: удаление

Тип: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['delete:compliance_user_data']

Причина: Compliance Access Key без delete:compliance_user_data был использован для вызова конечной точки DELETE для чатов, файлов или проектов.

Устранение: Создайте новый Compliance Access Key с выбранной областью delete:compliance_user_data. Область действия удаления отделена от read:compliance_user_data, чтобы ключи аудита только для чтения не могли удалять содержимое.

404 Not Found

Конечная точка разрешилась, но идентификатор ресурса не существует или уже был удалён. Удаления в Compliance API немедленны и необратимы, поэтому 404 для ранее известного идентификатора обычно означает, что содержимое было безвозвратно удалено через вызов удаления Compliance API или удалено политикой хранения. Конечные точки сеансов добавляют два случая. На конечных точках локальных сеансов отдельное сообщение 404, Local sessions are not available., возвращается при каждом вызове (включая список), пока конечные точки недоступны для вашей родительской организации; оно не зависит от идентификатора сеанса и может быть временным. См. Локальный сеанс не найден. На конечных точках удалённых сеансов сеанс, который всё ещё подготавливается (status равен pending), пока не имеет транскрипта, поэтому его конечная точка сообщений возвращает 404, пока сеанс не запустится. См. Удалённый сеанс не найден. Строки типов активности, упоминаемые в каждом разделе «Устранение» (например, claude_chat_created), — это значения, которые можно передать в фильтр activity_types[] Activity Feed; см. Запрос активностей соответствия для всех поддерживаемых значений.

Чат не найден

Тип: not_found_error

Chat claude_chat_01H5CWunD7RpVJ5bHa8RCkja not found.

Причина: Идентификатор чата в пути не соответствует чату, доступному для чтения через Compliance API. Чат мог быть безвозвратно удалён через предыдущий вызов Compliance API или удалён политикой хранения вашей организации, либо он может принадлежать организации, которую вызывающий ключ не может читать. Чаты, которые пользователь удалил в claude.ai, не возвращают 404; они остаются доступными для чтения с заполненным deleted_at, но без содержимого сообщений.

Устранение: Сверьте идентификатор чата с недавней активностью claude_chat_created или claude_chat_viewed. Если активность недавняя, а чтение всё равно не удаётся, чат был безвозвратно удалён (через этот API или по истечении срока политики хранения) или принадлежит организации вне области действия вашего ключа.

Файл не найден

Тип: not_found_error

No file found with provided id, or it has already been deleted.

Причина: Идентификатор файла не существует или был удалён. Эта ошибка относится как к файлам, прикреплённым к чатам (claude_file_...), так и к файлам проектов.

Устранение: Сверьте с недавними активностями claude_file_uploaded или claude_file_deleted. Если файл был удалён, двоичные данные утрачены; запись активности остаётся в ленте в течение 6-летнего окна хранения.

Проект не найден

Тип: not_found_error

No project is found with the provided id.

Причина: Идентификатор проекта не существует или был удалён.

Устранение: Сверьте с недавними активностями claude_project_created или claude_project_deleted. Activity Feed продолжает отображать события жизненного цикла проекта даже после того, как сам проект исчез.

Документ проекта не найден

Тип: not_found_error

No project document found with provided id, or it has already been deleted.

Причина: Идентификатор документа проекта не существует или был удалён. Эта ошибка относится к текстовым документам проекта (claude_proj_doc_...), а не к файлам проекта.

Устранение: Используйте GET /v1/compliance/apps/projects/{project_id}/attachments для получения списка текущих вложений. Если документ отсутствует, он был удалён; получите его через запись активности claude_project_document_uploaded, если вам нужны только метаданные.

Локальный сеанс не найден

Тип: not_found_error

Local session not found.

Причина: Идентификатор сеанса, переданный в GET /v1/compliance/apps/sessions/local/{session_id} или GET /v1/compliance/apps/sessions/local/{session_id}/messages, не соответствует локальному сеансу, доступному для чтения через Compliance API. Обе конечные точки возвращают это одно сообщение, не различая причину, когда идентификатор не является сеансом в организации, которую ваш ключ может читать (включая идентификаторы, принадлежащие другой родительской организации), когда сеанс никогда не существовал, когда для сеанса действует нулевое хранение данных или когда вся активность сеанса вышла за пределы периода хранения, применимого к организации, которая его выполняла. Ответ Local session not found. не имеет временной формы, поскольку у локальных сеансов нет состояния подготовки (pending); сравните с разделом Удалённый сеанс не найден, где сеанс в статусе pending возвращает 404, пока не запустится. Идентификатор сеанса, не являющийся корректно сформированным идентификатором clls_, возвращает вместо этого 400 Bad Request.

Конечные точки локальных сеансов, включая конечную точку списка, возвращают другое сообщение 404, Local sessions are not available., пока сами конечные точки недоступны для вашей родительской организации. Этот ответ не зависит от идентификатора сеанса; никакой ключ, область действия или настройка на стороне клиента его не изменяют, и он может быть временным. Оба ответа имеют тип not_found_error; различает их текст сообщения.

Устранение: Сверьте идентификатор сеанса с GET /v1/compliance/apps/sessions/local; см. Сеансы на машинах пользователей. Если сеанс больше не появляется в списке, его содержимое вышло за пределы срока хранения (или сеанс по иной причине больше не находится в организации, которую ваш ключ может читать), и его транскрипт недоступен для получения; удалите идентификатор из своей очереди. Если каждый вызов, включая список, возвращает Local sessions are not available., сохраните идентификаторы сеансов в очереди и повторите при следующем запланированном запуске; если ответ сохраняется, свяжитесь с вашим представителем Anthropic и укажите заголовок ответа request-id.

Удалённый сеанс не найден

Тип: not_found_error

Remote session not found.

Причина: Идентификатор сеанса, переданный в GET /v1/compliance/apps/sessions/remote/{session_id}/messages, не соответствует транскрипту сеанса, доступному для чтения через Compliance API. Это происходит, когда идентификатор сеанса (cse_...) не существует или сеанс был удалён, когда сеанс принадлежит организации, которую ваш ключ не может читать, или когда status сеанса всё ещё pending: у сеанса в статусе pending пока нет транскрипта, поэтому конечная точка сообщений возвращает 404, пока сеанс не запустится. Идентификатор сеанса, не являющийся корректно сформированным идентификатором cse_, возвращает вместо этого 400 Bad Request.

Устранение: Сверьте идентификатор сеанса и его status с GET /v1/compliance/apps/sessions/remote; см. Сеансы в облаке. Если сеанс в статусе pending, повторите после того, как он выйдет из этого статуса. Если сеанс больше не появляется в списке, он был удалён, и его транскрипт недоступен для получения.

Организация, роль или группа не найдены

Тип: not_found_error

The "ce86b5f3-7c16-48b3-a9f3-e1d2c4b8a0f1" organization does not exist or the requester is not authorized to access it.

Конечные точки организаций, ролей и групп возвращают 404 not_found_error в стандартном формате ошибок. В сообщении для организации указывается org_uuid; сообщения для ролей и групп общие (Role not found., Group not found.). Это происходит, когда идентификатор в пути (org_uuid, role_id или group_id) не существует или больше не принадлежит дереву, которое вызывающий ключ может читать.

Причина: Идентификатор в пути не соответствует записи, доступной для чтения через Compliance API. Роли и группы могут быть удалены, а организации могут быть отсоединены от родительского дерева.

Устранение: Проверьте идентификатор по соответствующей конечной точке списка и сверьте с недавними активностями организаций, ролей или групп в Activity Feed.

Настройки организации недоступны

Тип: not_found_error

organization `91012d09-e48b-438e-a489-1bebfd8fa6f9` not found in this organization's hierarchy

Причина: GET /v1/compliance/organizations/{organization_id}/settings возвращает этот 404 в трёх случаях, которые намеренно имеют одинаковое тело, чтобы ответ не раскрывал, существует ли организация: organization_id не является одной из связанных организаций вашей родительской организации, значение не является допустимым UUID или конечная точка настроек ещё не включена для вашей родительской организации.

Устранение: Проверьте идентификатор по Списку организаций. Если заведомо корректный идентификатор организации всё равно возвращает 404, конечная точка настроек ещё не включена для вашей родительской организации; свяжитесь с вашим представителем Anthropic.

409 Conflict

Запрос корректно сформирован и авторизован, но конфликтует с текущим состоянием ресурса.

К проекту прикреплены чаты

Тип: conflict_error

The "claude_proj_01KGp4eZNug9ri4kE35RSppq" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again.

Причина: DELETE /v1/compliance/apps/projects/{project_id} был вызван для проекта, к которому всё ещё прикреплены чаты.

Устранение: Получите список чатов проекта с помощью GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} (фильтр project_ids[] требует хотя бы одного значения user_ids[]; перечислите идентификаторы через Список пользователей организации), удалите каждый из них с помощью DELETE /v1/compliance/apps/chats/{claude_chat_id}, а затем повторите удаление проекта.

429 Too Many Requests

Запросы к Compliance API ограничены 600 запросами в минуту на родительскую организацию. Это «rate limit» (ограничение скорости) представляет собой один бюджет, общий для всех ключей в рамках родительской организации (Compliance Access Keys и ключей Admin API всех связанных организаций) и для всех конечных точек /v1/compliance/*; конечные точки удалённых сеансов имеют второй бюджет запросов поверх него. Для автономной организации Claude Console, не имеющей родительской организации, тот же бюджет применяется к самой организации и является общим для её ключей Admin API. Свяжитесь с вашим представителем Anthropic, если вашей интеграции требуется более высокий лимит.

После аутентификации вашего ключа API ответы Compliance API сообщают об общем бюджете через стандартные заголовки ответа ограничения скорости, чтобы ваш клиент мог заблаговременно снижать нагрузку, а не ждать 429:

  • anthropic-ratelimit-requests-limit — бюджет запросов в минуту.
  • anthropic-ratelimit-requests-remaining — бюджет, оставшийся в текущем окне.
  • anthropic-ratelimit-requests-reset — метка времени RFC 3339, когда окно сбрасывается и полный бюджет восстанавливается.

Ответ 429 также содержит заголовок retry-after с количеством секунд ожидания перед отправкой следующего запроса. Это значение может включать небольшой запас сверх anthropic-ratelimit-requests-reset; соблюдайте retry-after.

HTTP/1.1 429 Too Many Requests
date: Tue, 21 Apr 2026 14:38:02 GMT
retry-after: 25
anthropic-ratelimit-requests-limit: 600
anthropic-ratelimit-requests-remaining: 0
anthropic-ratelimit-requests-reset: 2026-04-21T14:38:25Z
{
  "error": {
    "type": "rate_limit_error",
    "message": "Compliance API rate limit of 600 requests per minute per parent organization has been exceeded. Retry after the time indicated by the retry-after header. Quote the request-id response header when contacting Anthropic support."
  }
}

Причина: Ваша родительская организация (или автономная организация Claude Console) отправила более 600 запросов к /v1/compliance/* в течение 1-минутного окна по всем ключам, разделяющим её бюджет, либо исчерпала второй бюджет запросов конечных точек удалённых сеансов (описанный далее в этом разделе).

Устранение: Подождите количество секунд, указанное в заголовке retry-after, затем повторите. Если заголовок отсутствует (например, удалён промежуточным узлом), используйте экспоненциальную задержку (начните с 1 секунды, удваивайте до 60 секунд). Не продвигайте курсор пагинации при 429: неудавшийся запрос не вернул данных, поэтому курсор с последней успешной страницы по-прежнему корректен.

Запросы, не прошедшие аутентификацию (отсутствующий или нераспознанный ключ либо ключ Claude API вместо Compliance Access Key или ключа Admin API), отклоняются до ограничителя скорости и не расходуют квоту. Действительный ключ, не имеющий требуемой конечной точкой области действия, расходует одну единицу квоты до возврата 403.

Конечные точки локальных сеансов учитываются только в общем лимите. Конечные точки удалённых сеансов также имеют второй бюджет запросов, привязанный к вашей родительской организации, как и общий лимит, поверх него. Ответ 429 от этого бюджета содержит заголовок retry-after, который всегда равен 1 (минимальное ожидание, а не фактическое время сброса); любые заголовки anthropic-ratelimit-* в этом ответе описывают общий лимит, а не этот бюджет, поэтому применяйте экспоненциальную задержку, если 429 повторяется.

Если вы опрашиваете Activity Feed по расписанию, планируйте совокупную частоту запросов (по всем ключам, связанным организациям и параллельным обработчикам) ниже общего лимита. Следите за anthropic-ratelimit-requests-remaining, чтобы замедлиться до его достижения. См. Проектирование интеграции соответствия для выбора между опросом по окнам и приёмом данных на основе курсора.

500 Internal Server Error

Ответ 500 от Compliance API содержит заголовок ответа x-should-retry: false, когда сбой детерминирован. SDK Anthropic учитывают этот заголовок автоматически. Если вы используете универсальную HTTP-библиотеку повторов, которая повторяет при каждом 5xx, подавляйте повторы, когда x-should-retry равен false; повтор этой ошибки завершается идентичным сбоем при каждой попытке.

Ответ 500 без заголовка x-should-retry: false является временным: повторите с экспоненциальной задержкой (начните с 1 секунды, удваивайте до 60 секунд). То же относится к ответам 502, 503, 504 и 529. Исключение — небольшой набор ответов 503 локальных сеансов, описанных далее, которые зависят от настроек организации или ключа шифрования, а не от нагрузки. См. Ошибки для семантики повторов на уровне всей платформы.

Локальные сеансы временно недоступны

Тип: overloaded_error

The local-sessions index is temporarily unavailable. Try again shortly.
Captured content is temporarily unavailable. Try again shortly.
The local-sessions index cannot currently evaluate retention overrides for this page. Try again later.

Причина: Конечные точки локальных сеансов возвращают 503 с одним из этих тел. Все три имеют тип overloaded_error, поэтому это одна из немногих ошибок на этой странице, где для различения условий вам нужен текст сообщения, а не error.type:

  • Тело index is temporarily unavailable означает, что списки сеансов кратковременно недоступны из-за нагрузки или состояния серверной части. Это временно.
  • Тело Captured content означает, что содержимое транскрипта сеанса не может быть возвращено прямо сейчас. Обычно это тоже временно. В организациях, использующих ключи шифрования, управляемые клиентом, конечная точка сообщений также возвращает это тело для каждой страницы, содержащей содержимое, которое ваш ключ не может расшифровать, например потому, что вы отключили, отозвали или уничтожили ключ, либо потому, что ключ недоступен. В этом случае ошибка сохраняется до тех пор, пока ключ нельзя использовать. Текст сообщения одинаков в обоих случаях, поэтому единственный признак того, что причина в ключе, — это то, что ошибка продолжает повторяться для этой организации. Непригодный ключ никогда не сообщается как not_captured.
  • Тело retention overrides означает, что настройку хранения или обработки данных, применимую к одному или нескольким сеансам в запрошенном диапазоне, пока не удалось оценить. На конечных точках получения и сообщений оно содержит for this session вместо for this page. Оно зависит от данных и настроек организации, выполнявшей сеанс, а не от нагрузки, и может сохраняться в течение длительного периода.

Устранение: Обрабатывайте каждое тело следующим образом:

  • Для двух тел Try again shortly. повторите с экспоненциальной задержкой и не продвигайте курсор page, поскольку неудавшийся запрос не вернул данных.
  • Если тело Captured content продолжает повторяться на конечной точке сообщений для организации, использующей ключ, управляемый клиентом, считайте его постоянным: прекратите обход транскриптов этой организации и проверьте статус ключа в вашей службе управления ключами. Транскрипты в других связанных организациях и метаданные сеансов повсюду не затронуты. Если вы повторяете при последующем запуске, начните обход каждого сеанса заново без page, поскольку курсоры страниц сообщений истекают через 24 часа после первой страницы обхода.
  • Для тела Try again later. не держите обход открытым в ожидании его устранения. На конечной точке списка либо повторите позже, начав заново без параметра page (токен страницы списка старше 24 часов по-прежнему принимается, но переоценивается относительно текущей границы хранения, поэтому приостановленный обход может пропустить сеансы), либо сужайте окно created_at.gte и created_at.lt, пока запрос не выполнится успешно, и экспортируйте пропущенный диапазон отдельно при последующем запуске. На конечных точках получения и сообщений пропустите этот идентификатор сеанса, продолжите остальную часть экспорта и повторите сеанс при последующем запуске. Курсоры страниц сообщений истекают через 24 часа после первой страницы обхода, поэтому начните обход этого сеанса заново без page, когда вернётесь к нему.

Если какое-либо из этих условий повторяется между запусками, свяжитесь с вашим представителем Anthropic и укажите заголовок ответа request-id. В случае ключа, управляемого клиентом, делайте это только если ошибка продолжается, пока ваш ключ пригоден к использованию.

Об инцидентах на уровне всего сервиса см. status.anthropic.com.

Следующие шаги

Распространённые вопросы о доступе, областях действия, хранении и интеграции.

Каталог ошибок на уровне всей платформы и семантика повторов.

Was this page helpful?