Справочный центр Wialon

Коды ошибок

Если сервер не может выполнить API-запрос, он возвращает JSON-ответ, содержащий код ошибки:

Copied!
{"error":<code>}

HTTP-статус такого ответа — 200 OK, как и в случае успешного запроса. Чтобы узнать, выполнен ли запрос успешно, проверяйте тело ответа, а не HTTP-статус.

Для некоторых ошибок ответ также содержит поле reason, которое объясняет причину ошибки:

Copied!
{"error":<code>,"reason":<text>}

Общие коды ошибок

Код ошибки Описание Значение поля reason
-100 Внутренняя ошибка (таймаут сети).
-101 Внутренняя ошибка (неверный ответ сети).
0 Успешная операция (например, для выхода из системы это означает успешный выход).
1 Невалидная сессия.
2 Неверное имя API-сервиса.
3 Неверный результат. Плагин библиотеки типов не включен, элемент AVL Server не найден или файл не найден.
4 Неверный ввод. Запрос содержит неверное значение параметра или неверную комбинацию параметров, либо ID объекта не соответствует ни одному существующему объекту внутри контейнера, доступного пользователю. VALIDATE_PARAMS_ERROR: <text>: параметры не соответствуют схеме, предусмотренной методом, где <text> — ожидаемая схема. Возвращается методами, использующими общую проверку параметров.
PARAMS_ERROR: <text>: проверка параметров метода не пройдена, где <text> описывает причину.
DRIVER_NOT_FOUND: указанный водитель не найден в ресурсе (resource/driver_actions_list, resource/driver_actions_cleanup, resource/driver_actions_register, resource/bind_unit_driver).
ROUTE_NOT_FOUND или ORDER_NOT_FOUND: указанный маршрут или заявка не найдены (order/route_update, order/optimize, order/update).
BATCH_INVALID_INTERNAL_REQUEST index=<i>: один из элементов массива запросов не является корректным методом, где <i> — позиция этого элемента, отсчитываемая с 0 (core/batch).
5 Ошибка выполнения запроса. EVENTS_ARE_DISABLED: подсистема событий отключена для запрашиваемого детектора (events/get_last, events/load, unit/get_events, resource/get_driver_bindings).
EVENTS_ARE_INITIALIZING: подсистема событий все еще инициализируется (resource/get_driver_bindings).
TWILIO_REQUEST_FAILED: HTTP-запрос к Twilio не выполнен (accounts/get_twilio_templates).
PARSING_ERROR или UNKNOWN_ERROR: файл не может быть обработан (exchange/convert_file).
6 Неизвестная ошибка. Во многих случаях ответ не содержит поля reason. UNKNOWN_ERROR: запрос не выполнен по неуказанной причине (unit/create_task, unit/update_task, gis_get_route, gis_get_many_to_many_route, gis_get_one_to_many_route, gis_get_route_via_waypoints).
Internal server error: не удалось выполнить внутреннюю операцию сессии, хранилища или формирования ответа (различные обработчики).
GET_MESSAGES_UNKNOWN_ERROR: менеджер сообщений не может вернуть данные (resource/driver_actions_list, resource/driver_actions_cleanup, resource/driver_actions_register, resource/bind_unit_driver).
Large response: ответ core/batch слишком большой, чтобы быть сформированным.
ERROR_CREATING_RESOURCE_DUE_TO_BILLING_RULES: ресурс не может быть создан в соответствии с тарификационными ограничениями (core/create_resource).
Internal error (http service unavailable): внутренний HTTP-клиентский сервис недоступен при проверке стороннего токена авторизации (user/bind_auth_service).
Internal error (failed to connect to remote service): не удалось установить соединение с провайдером авторизации (user/bind_auth_service).
Internal error (bad http response <code>): провайдер авторизации возвращает HTTP-статус, отличный от 200, где <code> — этот статус (user/bind_auth_service).
Failed to parse remote response: ответ провайдера авторизации не является корректным JSON (user/bind_auth_service).
7 Доступ запрещен. Текущий пользователь или токен не имеет необходимого доступа к целевому элементу или операции, либо услуга, требуемая конечной точкой, отключена. Методы, которые создают или изменяют элементы, также возвращают эту ошибку во время переноса учетной записи пользователя в другой дата-центр, даже если у пользователя есть все необходимые права доступа. В этом случае повторите запрос после завершения переноса. В большинстве случаев ответ не содержит поля reason. USER_DISABLED: пользователь отключен (token/login).
Access denied: услуга, требуемая конечной точкой, отключена для пользователя, например, videomonitoring для videostorage_config, или billing_by_codes для методов unit/get_billing_code и codes/*.
Unauthorized user: в сессии нет текущего пользователя (конечные точки сессий чата и водителя).
Другие специфичные для конечной точки причины документированы на соответствующих страницах методов.
8 Неверное имя пользователя или пароль. Все следующие значения reason возвращаются методом token/login. TOKEN_USER_NOT_FOUND: GUID пользователя в токене не соответствует ни одному пользователю.
INVALID_AUTH_TOKEN: не удается обработать содержимое токена.
INVALID_AUHT_TOKEN: не удается инициализировать сессию из токена.
OPERATE_AS_USER_NOT_FOUND: <login>: пользователь, указанный в параметре operateAs, не существует.
OPERATE_AS_USER_NO_ACCESS: <login>: владелец токена не имеет права доступа OPERATE_AS к указанному пользователю, или пользователь отсутствует в списке элементов, доступных для токена.
SOME_LOGIN_PROBLEMS: не удается создать сессию для указанного пользователя по неуказанной причине.
9 Сервер авторизации недоступен. Во многих случаях ответ не содержит поля reason. INTERNAL_ERROR: не удается найти учетную запись верхнего уровня для текущего пользователя (user/share_billing_code, user/unshare_billing_code).
10 Одновременно обрабатывается слишком много запросов одного типа, например, 5 одновременных пересчетов. В core/batch, если параметр flags включает флаг 0x01 (1), запросы, следующие за первой ошибкой, не выполняются. То же самое происходит, если запрос превысил ограничение по времени, установленное на сервере. Каждый из оставшихся запросов возвращает ошибку 10 без поля reason. ERROR: simultaneous recalculations limit (<limit> simultaneuos recalculations) reached, где <limit> — разрешенное количество пересчетов (admin/recalculate_history).
11 Ошибка сброса пароля. В некоторых случаях ответ не содержит поля reason. Все следующие значения reason возвращаются методом core/reset_password_request. USER_OR_EMAIL_NOT_CORRECT: пользователь не существует, либо адрес электронной почты не совпадает с указанным для пользователя.
PASSWORD_IMMUTABLE: пароль пользователя не может быть изменен.
REQUEST_TOO_OFTEN: с момента предыдущего запроса на сброс пароля прошло менее минуты.
12 Агро-подсистема не загружена.
14 Услуга, требуемая методом, недоступна. Video service is not available: услуга видео не включена для учетной записи пользователя или для ее родительских учетных записей (user/get_video_units).
1001 Нет сообщений за выбранный интервал.
1002 Элемент не может быть создан, так как элемент с таким именем уже существует, из-за тарификационных ограничений или потому, что указанный идентификатор уже используется. NAME_ALREADY_EXISTS: элемент с таким именем уже существует (core/create_resource, core/create_user).
ERROR_CREATING_RESOURCE_DUE_TO_BILLING_RULES: ресурс не может быть создан из-за тарификационных ограничений (core/create_resource).
ERROR_CREATING_USER_DUE_TO_BILLING_RULES: пользователь не может быть создан из-за тарификационных ограничений (core/create_user).
User already exists: сторонний идентификатор авторизации уже привязан к другому пользователю (user/bind_auth_service).
1003 Достигнут лимит, или запрос не может быть обработан в данный момент. LIMIT <rule_name>: достигнут указанный лимит, например, LIMIT api_concurrent или LIMIT invalid_logins (avl_evts, core/login, core/use_auth_hash, core/check_unique, token/login, token/update, report/apply_report_result).
LOCKER_ERROR: внутренняя ошибка сервиса, который подсчитывает лимиты. Возвращается теми же методами, а также методами user/update_password и user/verify_code.
LAYERS_MAX_COUNT: достигнут лимит в 50 слоев сообщений (render/create_messages_layer).
NO_SESSION: не удается создать новую сессию (core/login, core/duplicate).
Accept-Encoding is not gzip: запрос не использует кодировку gzip (messages/load_interval).
1004 Достигнут лимит сообщений. LIMIT msgs_count: достигнут лимит загруженных сообщений (messages/load_interval, render/create_messages_layer, report/apply_report_result).
LIMIT msgs_activity: достигнут лимит сообщений, загруженных в течение определенного периода времени (report/apply_report_result).
EXCEEDS_LIMIT_MSGS_COUNT: количество сообщений, запрошенных в параметре loadCount, превышает максимально допустимое для метода (messages/get_task_messages).
1005 Время выполнения отчета превысило лимит (report/exec_report), или конфигурация оборудования неверна (unit/update_hw_params).
1006 Достигнут лимит, связанный с паролем или кодом двухфакторной авторизации. LIMIT <rule_name> for password update: слишком много попыток обновить пароль (user/update_password).
LIMIT <rule_name> for verify code: слишком много попыток ввести код двухфакторной авторизации (user/verify_code).
1011 Ваш IP изменился, или сессия истекла.

Коды ошибок переноса элементов

Следующие коды возвращаются при переносе элемента в другой ресурс или учетную запись. Коды 2001..2013 возвращаются методом account/change_account.

Код ошибки Описание
2001 Неверный элемент или target_resource.
2002 target_resource не является учетной записью.
2003 Неверный целевой плагин.
2004 Целевая учетная запись заблокирована.
2005 Недействительный создатель target_resource.
2006 target_creator не имеет доступа к элементу.
2007 Неверный исходный ресурс.
2008 Элемент уже находится в target_resource.
2009 target_resource принадлежит другому пользователю верхнего уровня.
2010 В целевой учетной записи недостаточно квоты ресурсов для принятия элемента.
2011 Неверный плагин элемента.
2012 Ошибка изменения элемента тарифной учетной записи на target_resource.
2013 Ошибка изменения создателя элемента.

Другие ошибки элементов и датчиков

Код ошибки Описание
2014 Выбранный пользователь является создателем некоторых элементов системы, поэтому этот пользователь не может быть назначен на новую учетную запись (core/create_resource).
2015 Датчик не может быть удален, так как он используется в другом датчике (в качестве валидирующего датчика) или в расширенных свойствах объекта (датчик состояния движения, цвета датчиков, датчик мониторинга) (unit/update_sensor).

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.