---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.0
alternate:
  - https://yandex.ru/dev/dialogs/smart-home/doc/en/concepts/response-codes.md
  - https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/response-codes.md
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/response-codes.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/ru/llms.txt?revision=r21995741
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/dialogs/smart-home/doc/ru/llms.txt?revision=r21995741

# Коды ответа

<!-- source: ru/_includes/reusables/neuroexpert-button.md -->



<!-- endsource: ru/_includes/reusables/neuroexpert-button.md -->


<!-- <section id="codes">
            <title>Коды ошибок</title>
            <table>
                <tgroup cols="3">
                    <thead>
                        <row>
                            <entry>Код ошибки</entry>
                            <entry>Описание</entry>
                            <entry>Пояснение</entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry><codeph>UNKNOWN_USER</codeph></entry>
                            <entry>Пользователь не найден</entry>
                            <entry>OAuth-токен пользователя невалиден, либо пользователь на стороне провайдера удалил разрешение на доступ к его данным от приложения Яндекса</entry>
                        </row>
                        <row>
                            <entry><codeph>USER_TOKEN_EXPIRED</codeph></entry>
                            <entry>OAuth-токен пользователя истек</entry>
                            <entry>Запрос с истекшим OAuth-токеном в любой операции</entry>
                        </row>
                        <row>
                            <entry><codeph>UNKNOWN_DEVICE</codeph></entry>
                            <entry>Устройство с таким <codeph>device_id</codeph> не найдено</entry>
                            <entry>Попытка <xref href="../reference/post-devices-query.dita">запросить статус устройства</xref> с несуществующим <codeph>device_id</codeph></entry>
                        </row>
                        <row>
                            <entry><codeph>DEVICE_FORMAT_ERR</codeph></entry>
                            <entry>Некорректный формат <codeph>device_id</codeph></entry>
                            <entry>Попытка <xref href="../reference/post-devices-query.dita">запросить статус устройства</xref> с некорректным <codeph>device_id</codeph></entry>
                        </row>
                        <row>
                            <entry><codeph>DEVICE_OFFLINE</codeph></entry>
                            <entry>Устройство не в сети</entry>
                            <entry>Попытка <xref href="../reference/post-action.dita">изменить статус у устройства</xref>, которое отключено от сети Интернет</entry>
                        </row>
                        <row>
                            <entry><codeph>UNKNOWN_CAPABILITY</codeph></entry>
                            <entry>Умение (поле <codeph>capability</codeph>) с таким именем не найдено</entry>
                            <entry>Попытка <xref href="../reference/post-action.dita">изменить статус у устройства</xref> с указанием неизвестного умения</entry>
                        </row>
                        <row>
                            <entry><codeph>CAPABILITY_FORMAT_ERR</codeph></entry>
                            <entry>Некорректный формат умения (само поле с <codeph>capability</codeph>, либо его содержимое)</entry>
                            <entry>Попытка <xref href="../reference/post-action.dita">изменить статус у устройства</xref> с указанием умения в некорректном формате, например, неправильные названия полей, неожиданный тип в поле</entry>
                        </row>
                        <row>
                            <entry><codeph>UNACCEPTABLE_CAPABILITY</codeph></entry>
                            <entry>Умение не поддерживается этим устройством</entry>
                            <entry>Попытка <xref href="../reference/post-action.dita">изменить статус у устройства</xref> с указанием умения, которое недоступно для данного устройства</entry>
                        </row>
                        <row>
                            <entry><codeph>ACTION_FORBIDDEN</codeph></entry>
                            <entry>Недостаточно прав для изменения статуса у устройства</entry>
                            <entry>Попытка <xref href="../reference/post-action.dita">изменить статус у устройства</xref>, которое не принадлежит пользователю</entry>
                        </row>
                    </tbody>
                </tgroup>
            </table>
        </section> -->

## Успешный запрос {#codes}

1. Если запрос был обработан без ошибок, ваш API должен отвечать кодом 200 OK.
1. Если во время выполнения запроса произошла ошибка, связанная с устройствами, ваш API должен отвечать HTTP-кодом 200 ОК и одним из поддерживаемых кодов. Код передавайте в параметре `error_code`, а описание ошибки — в параметре `error_message`.

<!-- <codeblock code-lang="json">// Пример ответа на запрос, который завершился с ошибкой
HTTP/1.1 200 OK

{
  "payload": {
    "devices": [{
        "id": "device-id-1",
        "error_code": "DEVICE_UNREACHABLE",
        "error_message": "the human readable error message"
    }]
  }
}</codeblock>    -
                    <table>
                        <tgroup cols="2">
                            <colspec colname="1"/>
                            <colspec colname="2"/>
                            <thead>
                                <row>
                                    <entry>Параметр</entry>
                                    <entry>Описание</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry><codeph>error_code</codeph></entry>
                                    <entry>Код возможной ошибки из списка.</entry>
                                </row>
                                <row>
                                    <entry><codeph>error_message</codeph></entry>
                                    <entry>Описание возможной ошибки.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table> -->

#|
||
**Код ошибки**
|
**Краткое описание**
|
**Текст ошибки в приложении**
|
**Фраза Алисы**
|
**Пример возникновения ошибки**
||

||
DOOR_OPEN
|
Открыта дверца
|
Не забудьте закрыть дверцу.

|
_Ой, кажется, открыта дверца. Закройте её и повторите команду._

|
Запуск стирки при неплотно закрытой дверце стиральной машинки
||

||
LID_OPEN
|
Открыта крышка
|
Не забудьте закрыть крышку.

|
_Упс, кажется, вы забыли закрыть крышку. Закройте её и повторите команду._

|
Запуск программы приготовления на мультиварке с открытой крышкой
||

||
REMOTE_CONTROL_DISABLED
|
Удаленное управление устройством отключено
|
Сначала нужно спросить разрешения у самого устройства: проверьте, на нём должна быть специальная кнопка.

|
_Сначала нужно спросить разрешения у самого устройства: проверьте, на нём должна быть специальная кнопка._

|
Управление устройством, у которого отключена функция удаленного управления
||

||
NOT_ENOUGH_WATER
|
Недостаточно воды
|
Попробуйте долить воды.

|
_Ой, недостаточно воды. Долейте её и повторите команду._

|
Запуск чайника или увлажнителя без воды
||

||
LOW_CHARGE_LEVEL
|
Низкий уровень заряда
|
Устройство нужно зарядить.

|
_Кажется, устройство разрядилось. Пожалуйста, повторите после зарядки._

|
Запуск робота-пылесоса с разряженной батареей
||

||
CONTAINER_FULL
|
Контейнер полон
|
Сначала нужно очистить контейнер.

|
_Кажется, контейнер переполнился. Очистите его и повторите команду._

|
Запуск робота-пылесоса с переполненным контейнером для пыли. Запуск кофеварки с переполненным контейнером для отработанного кофе
||

||
CONTAINER_EMPTY
|
Контейнер пуст
|
В контейнер нужно что-нибудь положить.

|
_Ой, кажется, вы забыли положить кофе — контейнер пуст. Наполните его и повторите команду._

|
Запуск кофеварки с пустым контейнером для зерен
||

||
DRIP_TRAY_FULL
|
Сливной поддон полон
|
Нужно очистить поддон.

|
_Заполнился сливной поддон. Очистите и повторите команду._

|
Запуск кофеварки с переполненным сливным поддоном
||

||
DEVICE_STUCK
|
Устройство застряло
|
Кажется, на пути препятствие, его нужно убрать.

|
_Аларм, возникло препятствие! Пожалуйста, устраните его._

|
Команда застрявшему роботу-пылесосу
||

||
DEVICE_OFF
|
Устройство выключено
|
Сначала нужно включить устройство.

|
_Ой, не получается. Сначала включите устройство._

|
Команда выключенному устройству. Если устройство отключено от электричества или от сети интернет, используйте код ошибки DEVICE_UNREACHABLE
||

||
FIRMWARE_OUT_OF_DATE
|
Прошивка устарела
|
Нужно обновить прошивку устройства, которым хотите управлять.

|
_Не могу запустить без обновления. Пожалуйста, обновите прошивку вашему устройству (речь не обо мне)._

|
Команда устройству с устаревшей версией прошивки, которая не позволяет выполнить указанную команду
||

||
NOT_ENOUGH_DETERGENT
|
Недостаточно моющего средства
|
Добавьте моющее средство.

|
_Я бы рада, да закончилось моющее средство. Добавьте его и повторите команду._

|
Запуск посудомоечной машины без моющего средства
||

||
HUMAN_INVOLVEMENT_NEEDED
|
Требуется вмешательство человека
|
Что-то не так с устройством: пожалуйста, осмотрите его.

|
_Кажется, что-то пошло не так. Для устранения ошибки нужна ваша помощь._

|
Запуск стиральной машины с перегруженным барабаном.
||

||
DEVICE_UNREACHABLE
|
Устройство недоступно
|
Устройство не отвечает. Проверьте, вдруг оно выключено или пропал интернет.

|
_Не вижу устройства, проверьте, пожалуйста, его подключение._

|
Запуск устройства, отключенного от электричества или от сети интернет
||

||
DEVICE_BUSY
|
Устройство занято
|
Устройство уже работает. Подождите, пока оно закончит.

|
_Прямо сейчас устройство занято, попробуйте позднее._

|
Команда стиральной машине, которая уже выполняет программу стирки
||

||
INTERNAL_ERROR
|
Неизвестная внутренняя ошибка
|
Случилось что-то непонятное. Подождите немного и попробуйте ещё раз.

|
_Что-то пошло не так. Подождите немного и попробуйте снова._

|
Любая неклассифицируемая ошибка на стороне платформы партнера
||

||
INVALID_ACTION
|
Недопустимое действие
|
Это устройство так не умеет. Попробуйте что-нибудь другое.

|
_Устройство сообщает мне, что оно этого не умеет._

|
Команда изменения яркости света на стиральной машине без соответствующего умения
||

||
INVALID_VALUE
|
Недопустимое значение
|
Какое-то незнакомое значение. Попробуйте другое.

|
_Не нахожу такой возможности, увы._

|
Команда на установку значения вне допустимого диапазона — включение 150-го канала на телевизоре при доступных 100
||

||
NOT_SUPPORTED_IN_CURRENT_MODE
|
Не поддерживается в текущем режиме работы устройства
|
В этом режиме такая команда не работает.

|
_В текущем режиме это невозможно._

|
Команда на изменение температуры кондиционера, находящегося в режиме вентиляции (в данном режиме охлаждение или нагрев воздуха не происходит)
||

||
ACCOUNT_LINKING_ERROR
|
Ошибка в OAuth2 токене пользователя
|
Попробуйте привязать устройство заново, а то оно отвязалось.

|
_Устройство отвязалось, необходимо снова связать аккаунты в приложении Яндекса._

|
Попытка управлять устройством с просроченным или инвалидированным OAuth2 токеном
||
||

DEVICE_NOT_FOUND

|
Устройство не найдено

|
Данное устройство вам не принадлежит.


|
_Не могу найти такое устройство._


|
Пользователь удалил устройство в приложении производителя

||
|#

{% note info "Разграничение offline и DEVICE_UNREACHABLE" %}

Потеря связи с устройством и ошибка управления — два независимых требования, одно не заменяет другое:

- провайдер отправляет уведомление [об изменении состояния устройства](https://yandex.ru/dev/dialogs/smart-home/doc/ru/reference-alerts/post-skill_id-callback-state.md) (`/callback/state`) со `status: offline` — это уведомляет платформу о недоступности устройства;
- на попытку управления недоступным устройством API возвращает `DEVICE_UNREACHABLE` — это информирует пользователя о невозможности выполнить команду.

Подробнее см. в разделе [Требования к уведомлениям](https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/notifications-requirements.md#offline-vs-unreachable).

{% endnote %}

<!--table id="codes-api">
        <tgroup cols="3">
          <thead>
            <row>
              <entry>Код ошибки</entry>
              <entry>Описание</entry>
              <entry>Операция, которая поддерживает код</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry id="DEVICE_UNREACHABLE">DEVICE_UNREACHABLE</entry>
              <entry id="DEVICE_UNREACHABLE-desc">
                <p>Устройство недоступно.</p>
              </entry>
              <entry>
                <p><xref href="../reference/post-devices-query.dita">POST /user/devices/query</xref></p>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="DEVICE_BUSY">DEVICE_BUSY</entry>
              <entry id="DEVICE_BUSY-desc">
                <p>Устройство занято каким-либо действием.</p>
              </entry>
              <entry>
                <p><xref href="../reference/post-devices-query.dita">POST /user/devices/query</xref></p>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="DEVICE_NOT_FOUND">DEVICE_NOT_FOUND</entry>
              <entry id="DEVICE_NOT_FOUND-desc">
                <p>Устройство не найдено.</p>
              </entry>
              <entry>
                <p><xref href="../reference/post-devices-query.dita">POST /user/devices/query</xref></p>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="INTERNAL_ERROR">INTERNAL_ERROR</entry>
              <entry id="INTERNAL_ERROR-desc">
                <p>Неизвестная ошибка.</p>
              </entry>
              <entry>
                <p><xref href="../reference/post-devices-query.dita">POST /user/devices/query</xref></p>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="INVALID_ACTION">INVALID_ACTION</entry>
              <entry id="INVALID_ACTION-desc">Команда неприменима к устройству.</entry>
              <entry>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="INVALID_VALUE">INVALID_VALUE</entry>
              <entry id="INVALID_VALUE-desc">Значение неприменимо к умению устройства.</entry>
              <entry>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
            <row>
              <entry id="NOT_SUPPORTED_IN_CURRENT_MODE">NOT_SUPPORTED_IN_CURRENT_MODE</entry>
              <entry id="NOT_SUPPORTED_IN_CURRENT_MODE-desc">Изменение значения умения не поддерживается в текущем режиме (например, просьба включить зеленый цвет, когда лампочка выключена).</entry>
              <entry>
                <p><xref href="../reference/post-action.dita">POST /user/devices/action</xref></p>
              </entry>
            </row>
          </tbody>
        </tgroup>
      </table-->
<!--<dl>
                    <dlentry>
                        <dt>DEVICE_UNREACHABLE</dt>
                        <dd>
                            <p>Устройство недоступно.</p>
                                    <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
    "devices": [{
        "id": "device-id-1",
        "error_code": "DEVICE_UNREACHABLE",
        "error_message": "the human readable error message"
    }]
  }
}</codeblock>
                        </dd>
                    </dlentry>
                    <dlentry>
                        <dt>DEVICE_BUSY</dt>
                        <dd>
                            <p>Устройство занято каким-либо действием.</p>
                                    <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
    "devices": [{
        "id": "device-id-1",
        "error_code": "DEVICE_BUSY",
        "error_message": "the human readable error message"
    }]
  }
}</codeblock>
                        </dd>
                    </dlentry>
                    <dlentry>
                        <dt>DEVICE_NOT_FOUND</dt>
                        <dd>
                            <p>Устройство не найдено.</p>
                                    <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
    "devices": [{
        "id": "device-id-1",
        "error_code": "DEVICE_NOT_FOUND",
        "error_message": "the human readable error message"
    }]
  }
}</codeblock>
                        </dd>
                    </dlentry>
                    <dlentry>
                        <dt>INTERNAL_ERROR</dt>
                        <dd>
                            <p>Неизвестная ошибка.</p>
                                    <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
    "devices": [{
        "id": "device-id-1",
        "error_code": "INTERNAL_ERROR",
        "error_message": "the human readable error message"
    }]
  }
}</codeblock>
                        </dd>
                    </dlentry>
                </dl> -->
<!-- <section id="action">
                <title>Примеры ответов</title>
                <dl display-style="cut">
                    <dlentry>
                        <dt>Ответ на запрос, связанный с изменением состояния у устройств</dt>
                        <dd>
                      <p>Если у вас есть возможность возвращать ошибку для каждого изменения состояния у устройства, используйте структуру ответа из примера.</p>

                <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
      "devices": [{
          "id": "device-id-1",
          "capabilities": [{
              "type": "devices.capabilities.color_setting",
              "state": {
                  "instance": "temperature_k",
                  "action_result": {
                      "status": "ERROR",
                      "error_code": "INVALID_ACTION", //optional
                      "error_message": "the human readable error message" //optional
                  }
              }
          },
          {
              "type": "devices.capabilities.on_off",
              "state": {
                  "instance": "on",
                  "action_result": {
                      "status": "DONE"
                  }
              }
          }]
     }]
  }
}</codeblock>
                <p>Если у вас нет возможности возвращать ошибку для каждого изменения состояния у устройства, возвращайте одну ошибку на устройство. Если хотя бы одно состояние у устройства изменилось, ответ на запрос считается успешным. </p>
                <p>Используйте структуру ответа из примера.</p>
                <p>Пример ответа:</p>
                <codeblock code-lang="json">HTTP/1.1 200 OK

{
  "request_id": "EE109B31-FF6C-48BD-80DB-4D07A9AFEBB3",
  "payload": {
      "devices": [{
        "id": "device-id-1",
        "action_result": {
            "status": "ERROR",
            "error_code": "INVALID_ACTION", //optional
            "error_message": "the human readable error message" //optional
        }
      },
      {
        "id": "device-id-2",
        "action_result": {
            "status": "DONE",
        }
      }]
  }
}   </codeblock>
                        </dd>
                    </dlentry>
                </dl>
            </section> -->

## Запрос с ошибкой {#mistake}

Платформа умного дома работает по протоколу HTTP и поддерживает все стандартные коды состояний. В отдельных случаях, рекомендуется использовать коды, описанные в таблице ниже.

#|
||
**Код ошибки**
|
**Описание**
|
**Пояснение**
||

||
<!-- source: ru/_includes/concepts/response-codes/400-col-1.md -->
400
<!-- endsource: ru/_includes/concepts/response-codes/400-col-1.md -->
|
<!-- source: ru/_includes/concepts/response-codes/400-col-2.md -->
Bad Request
<!-- endsource: ru/_includes/concepts/response-codes/400-col-2.md -->
|
<!-- source: ru/_includes/concepts/response-codes/400-col-3.md -->
Ошибка в запросе.
<!-- endsource: ru/_includes/concepts/response-codes/400-col-3.md -->
||

||
401
|
Unauthorized
|
Не передан авторизационный токен.
||

||
403
|
Forbidden
|
- Пользователь не существует.
- Отсутствует доступ к запрашиваемому ресурсу.
||

||
<!-- source: ru/_includes/concepts/response-codes/404-col-1.md -->
404
<!-- endsource: ru/_includes/concepts/response-codes/404-col-1.md -->
|
<!-- source: ru/_includes/concepts/response-codes/404-col-2.md -->
Not Found
<!-- endsource: ru/_includes/concepts/response-codes/404-col-2.md -->
|
<!-- source: ru/_includes/concepts/response-codes/404-col-3.md -->
Ресурс по указанному пути не найден.
<!-- endsource: ru/_includes/concepts/response-codes/404-col-3.md -->
||

||
<!-- source: ru/_includes/concepts/response-codes/500-col-1.md -->
500
<!-- endsource: ru/_includes/concepts/response-codes/500-col-1.md -->
|
<!-- source: ru/_includes/concepts/response-codes/500-col-2.md -->
Internal Server Error
<!-- endsource: ru/_includes/concepts/response-codes/500-col-2.md -->
|
<!-- source: ru/_includes/concepts/response-codes/500-col-3.md -->
Внутренняя ошибка сервера.
<!-- endsource: ru/_includes/concepts/response-codes/500-col-3.md -->
||
|#


<!-- source: ru/_includes/about/id-support/support-button.md -->
[![Служба поддержки](../_images/support-image.svg)](https://yandex.ru/dev/dialogs/smart-home/doc/ru/feedback.md)
<!-- endsource: ru/_includes/about/id-support/support-button.md -->


