Типы ошибок и что с ними делать
- Что обозначают коды ошибок
- Ошибки в содержании запросов (400)
- Ошибки 401 Unauthorized
- Ошибки 403 Forbidden
- Ошибки 404 Not Found
- Ошибки 405 Method Not Allowed
- Ошибки 415 Unsupported Media Type
- Ошибки 420 Enhance Your Calm
- Ошибки 423 Locked
- Ошибки 500 Internal Server Error
- Ошибки 503 Service Unavailable
- Пример сообщения об ошибке
Если запрос магазина не удалось выполнить, Маркет возвращает в ответ параметр errors. Он содержит коды возникших ошибок (параметр code) и их краткие описания (параметр message).
Если ошибок с определенным кодом станет слишком много, вы получите уведомление об этом в кабинете продавца на Маркете.
Что обозначают коды ошибок
| Код | Название | Что случилось и что делать | 
| 
 | Что-то не так в содержании запроса. Например, ошибка в формате JSON-данных или вы пытаетесь изменить статус отмененного или доставленного заказа. Ориентируйтесь на описание ошибки, чтобы понять, что именно не так. | |
| 
 | В запросе не указан (или указан, но не там) токен авторизации. | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | На указанном ресурсе нет такого метода. Проверьте адреса запросов, по которым обращается система магазина. | |
| 
 | Запрашиваемый тип контента не поддерживается методом. Проверьте корректность запроса. | |
| 
 | Магазин превысил лимит запросов. Убедитесь, что ваша система не отправляет ничего лишнего. | |
| 
 | Метод невозможно использовать для этого магазина. Ориентируйтесь на описание ошибки, чтобы понять, что именно не так. | |
| 
 | Внутренняя ошибка Маркета. | |
| 
 | Сервер Маркета перегружен. | 
Ошибки в содержании запросов (400)
Возможные причины такой ошибки зависят от конкретного запроса. В описании многих запросов есть раздел, описывающий варианты ошибки 400 для конкретных данных.
Некоторые варианты ошибок с кодом 400 одинаковы для разных запросов:
| Описание | Перевод | Что делать | 
| Campaign type is not allowed | Метод не поддерживает модель работы вашего магазина. | Убедитесь, что вы используете метод, который поддерживает модель работы вашего магазина. | 
| Collection of field must not be empty | Параметр не должен быть пустым. | Укажите хотя бы один элемент для параметра. | 
| Contract with type MARKETING was signed with the agency | Договор на маркетинг заключен с агентством. | Для получения информации по закрывающим документам обратитесь к своему агентству. | 
| Invalid status: 'status' | Указан некорректный статус. | Проверьте корректность передаваемого статуса для фильтрации заказов по статусу. | 
| JSON: {message} | В формате JSON-данных содержится ошибка. | Проверьте корректность JSON. | 
| Limit exceeded | Превышено ограничение на количество значений на одной странице — параметр  | Уменьшите количество значений. | 
| Missing field | Не указан обязательный параметр. | Укажите значение для обязательного параметра. | 
| Outlet is disabled for editing by partner | Нельзя изменить информацию или удалить точку продажи магазина, так как вы отказались от доставки в пункты выдачи заказов Маркета. Подробнее о правилах доставки для DBS-магазинов читайте в Справке Маркета для продавцов. | Обратитесь в службу поддержки, если вы готовы включить доставку в пункты выдачи заказов Маркета. | 
| String (value) is not a valid country code according to ISO 3166-1 alpha-2 | Недопустимый код страны. | Укажите код страны в формате ISO 3166-1 alpha-2. | 
| The request is too big: {message} | Превышено ограничение на размер HTTP-запроса. | Размер содержимого не может превышать 512 КБ. Разбейте запрос на несколько. | 
| Too long time period. Maximum is 'maxPeriod' days | Указан слишком большой диапазон дат. Максимальный диапазон —  | Сократите диапазон дат для фильтрации заказов по дате. | 
| Unexpected character 'character': expected a valid value 'values' | Недопустимый символ. | Проверьте кодировку тела запроса. Требуемая кодировка — UTF-8. | 
| Unexpected end of content | Тело запроса неожиданно завершается. | Проверьте корректность формата данных, передаваемых в теле запроса. | 
| Value / length of field (value) must be between min and max [exclusively] | Значение (длина) параметра должно быть между значениями  | Проверьте корректность значения параметра. | 
| Value / length of field (value) must be greater / less than [or equal to limit] | Значение (длина) параметра должно быть равно либо больше (меньше) указанного значения  | Проверьте корректность значения параметра. | 
| Value of field has too high scale: 'price' | Задана слишком высокая точность для параметра. | Задайте значение параметра с меньшей точностью. | 
| Value of field must match the pattern: 'regExp' | Значение параметра должно соответствовать регулярному выражению. | Проверьте корректность значения параметра. | 
Ошибки 401 Unauthorized
| Описание | Перевод | Что делать | 
| Api-Key token is invalid | Api-Key-токен недействителен. | Проверьте написание Api-Key-токена. Если ошибка сохраняется, получите новый токен. Как это сделать | 
| Api-Key token is revoked | Api-Key-токен был удален. | Получите новый токен. Как это сделать | 
| Api-Key token format invalid | Неправильный формат Api-Key-токена. Префикс и длина токена корректны. | Проверьте написание Api-Key-токена. Если ошибка сохраняется, получите новый токен. Как это сделать | 
| Api-Key token length invalid | Неправильная длина Api-Key-токена. | Проверьте написание Api-Key-токена. Если ошибка сохраняется, получите новый токен. Как это сделать | 
| Api-Key token prefix invalid | Неправильный префикс Api-Key-токена. | Убедитесь, что в заголовке вы не используете префикс  Если префикса нет, проверьте написание Api-Key-токена. Если ошибка сохраняется, получите новый токен. Как это сделать | 
| Authorization header has invalid syntax | Формат HTTP-заголовка  | Сделайте заголовок по инструкции. | 
| Credentials are not specified | В запросе не указаны авторизационные данные. | Сделайте заголовок по инструкции: | 
| OAuth credentials are not specified | В запросе не указаны авторизационные данные. | Сделайте заголовок  | 
| OAuth token is not specified | В запросе не указан авторизационный OAuth-токен. | Сделайте заголовок  | 
| Unsupported authorization type specified in Authorization header | Тип авторизации, переданный в HTTP-заголовке  | Сделайте заголовок по инструкции. | 
Ошибки 403 Forbidden
| Описание | Перевод | Что делать | 
| Access denied | Доступ запрещен. | Проверьте правильность указания ресурса, а также наличие прав доступа к нему у пользователя, чей токен авторизации используется в запросе. Подробно о доступе | 
| Access denied for campaign 'campaignId' because it is not active | Метод недоступен из-за неактивности магазина. | Возможность использовать API показывает параметр  Исправьте ошибки, которые мешают вернуть товары на витрину. Если для этого нужен доступ к API, обратитесь в службу поддержки — перейдите в кабинет продавца на Маркете и нажмите кнопку Создать обращение. | 
| Access to API denied for the client / campaign | Доступ к API Яндекс Маркета для продавцов запрещен. | Обратитесь к своему агентству для предоставления доступа к API. | 
| Contact not found for login 'login' and campaignId 'campaignId' | Не найдена учетная запись пользователя, логин которой передан для подписи электронного акта приема-передачи. | Выберите логин пользователя, который привязан к кабинету или магазину. | 
| Contacts with available roles for signing not found for login 'login' | Учетная запись пользователя, логин которой передан для подписи электронного акта приема-передачи, не обладает необходимыми доступами. | Передайте логин пользователя, который привязан к кабинету или магазину и обладает необходимыми доступами. Доступы к методам по Api-Key | 
| OAuth token is invalid | Указанный авторизационный OAuth-токен недействителен. | Получите новый токен. Как это сделать | 
| OAuth token is invalid (account has been globally logged out) | Пользователь воспользовался функцией «Выйти везде» в Яндекс ID. | Получите новый токен. Как это сделать | 
| Restrict access for business 'businessId' because it is not active | Метод недоступен из-за неактивности кабинета. | Исправьте ошибки, которые мешают вернуть товары на витрину. Если для этого нужен доступ к API, обратитесь в службу поддержки — перейдите в кабинет продавца на Маркете и нажмите кнопку Создать обращение. | 
| Scope is invalid | OAuth-токен получен через приложение без доступа к Маркету. | Получите новый токен. Как это сделать | 
| The method is not supported for Market Yandex Go sellers | Метод недоступен для продавцов Market Yandex Go. Эти ограничения указаны в описании к методам. | — | 
| Token does not have any of the scopes to access the API method | Нет доступа к методу. | Получите доступ хотя бы к одной группе методов, которые перечислены в тексте ошибки. Как это сделать | 
| User account is disabled | Учетная запись пользователя, для которого выдан указанный токен авторизации, заблокирована. | Обратитесь в службу поддержки. | 
Ошибки 404 Not Found
| Описание | Перевод | Что делать | 
| Campaign not found: 'campaignId' | Указанная в запросе кампания не найдена. | Проверьте корректность передаваемого идентификатора кампании. | 
| Login not found: 'login' | Указанный в запросе логин не найден. | Проверьте корректность передаваемого логина. | 
| Model not found: 'modelId' | Указанная в запросе модель не найдена. | Проверьте корректность передаваемого идентификатора модели. | 
Ошибки 405 Method Not Allowed
| Описание | Перевод | Что делать | 
| Request method 'method' not supported | Запрашиваемый HTTP-метод не поддерживается. | Проверьте методы, которые поддерживаются ресурсом. | 
Ошибки 415 Unsupported Media Type
| Описание | Перевод | Что делать | 
| Content type 'content-type' not supported | Запрашиваемый тип контента не поддерживается. | Передайте один из поддерживаемых типов контента. | 
| Missing Content-Type | Не указан тип контента. | Передайте тип контента. | 
| Unknown content-type: 'content-type' | Запрашиваемый тип контента — неизвестен. | Передайте один из поддерживаемых типов контента. | 
Ошибки 420 Enhance Your Calm
| Описание | Перевод | Что делать | 
| Hit rate limit of 'N' parallel requests | Превышено глобальное ограничение на количество одновременных запросов к API Яндекс Маркета для продавцов. Что это такое | Уменьшите количество параллельных запросов к API в рамках одного кабинета или магазина до  | 
| Hit rate limit of 'N' requests per 'period' for resource 'R' | Превышено ресурсное ограничение на количество  | Время, до которого действует ограничение, указано в заголовке  | 
Ошибки 423 Locked
| Описание | Перевод | Что делать | 
| Business is in migration | В кабинете происходят миграции магазинов. | Дождитесь окончания переноса. | 
| Campaign is in business migration | Магазин находится в процессе переноса в другой кабинет. | Дождитесь окончания переноса. | 
| Partner use only default price | В кабинете используются цены для всех магазинов. | Установить цену для отдельного магазина не получится. Задавайте единые цены для всех магазинов кабинета. | 
Ошибки 500 Internal Server Error
Подождите некоторое время и вызовите метод повторно. Если проблема не решится, обратитесь в службу поддержки — перейдите в кабинет продавца на Маркете и нажмите кнопку Создать обращение.
Ошибки 503 Service Unavailable
| Описание | Перевод | Что делать | 
| Service temporarily unavailable. Please, try again later | Сервер временно недоступен из-за высокой загрузки. | Попробуйте повторить запрос через некоторое время. Если проблема не решится, обратитесь в службу поддержки — перейдите в кабинет продавца на Маркете и нажмите кнопку Создать обращение. | 
Пример сообщения об ошибке
Запрос:
GET /campaigns/10003/orders HTTP/1.1
Host: api.partner.market.yandex.ru
Accept: */*
Api-Key: ACMA:I4c4CxCSYaI41RSC2uYWP2qj3Rhhm4knMiBEga5K:151c0664a
Ответ:
{
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "Api-Key token is invalid"
    }
  ],
  "status": "ERROR"
}
Магазин отключен, так как не размещал товары на витрине больше 90 дней.
В кабинете нет ни одного активного магазина.
Магазин отключен, так как не размещал товары на витрине больше 90 дней.
В кабинете все магазины отключены, так как не размещали товары на витрине больше 90 дней.