---
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/en/concepts/response-codes.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/dev/dialogs/smart-home/doc/en/llms.txt?revision=r21995741
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/dialogs/smart-home/doc/en/llms.txt?revision=r21995741

# Response codes

<!-- <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> -->

## Request successful {#codes}

1. If the request was processed without errors, your API must respond with the 200 OK code.
1. If a device-related error occurs during request execution, your API must respond with HTTP 200 OK and one of the supported codes. Use the `error_code` parameter to pass the code, and the `error_message` parameter to pass the error description.

<!-- <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> -->

#|
||
**Error code**
|
**Brief description**
|
**Text of error in the app**
|
**Alice's phrase**
|
**Error example**
||

||
DOOR_OPEN
|
The door is open
|
Не забудьте закрыть дверцу.

Translation: Don't forget to close the door.
|
_Ой, кажется, открыта дверца. Закройте её и повторите команду._

Translation: Oh, the door seems to be open. Close it and repeat the command.
|
Command to start washing with the door of the washing machine not closed securely
||

||
LID_OPEN
|
The lid is open
|
Не забудьте закрыть крышку.

Translation: Don't forget to close the lid.
|
_Упс, кажется, вы забыли закрыть крышку. Закройте её и повторите команду._

Translation: Oops, it seems you forgot to close the lid. Close it and repeat the command.
|
Cooking program on a multicooker started with the lid open
||

||
REMOTE_CONTROL_DISABLED
|
Remote control is disabled for the device
|
Сначала нужно спросить разрешения у самого устройства: проверьте, на нём должна быть специальная кнопка.

Translation: First ask for permission from the device: check for a button on the device.
|
_Сначала нужно спросить разрешения у самого устройства: проверьте, на нём должна быть специальная кнопка._

Translation: First ask for permission from the device: check for a button on the device.
|
Controlling a device with remote control disabled
||

||
NOT_ENOUGH_WATER
|
Not enough water
|
Попробуйте долить воды.

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

Translation: Oh no, there's not enough water. Add more water and repeat the command.
|
Kettle or humidifier started without water
||

||
LOW_CHARGE_LEVEL
|
Low charge level
|
Устройство нужно зарядить.

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

Translation: It seems the device has run out of power. Please try again after charging.
|
Robotic vacuum cleaner started with a low battery level
||

||
CONTAINER_FULL
|
The container is full
|
Сначала нужно очистить контейнер.

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

Translation: The container is too full. Empty it and repeat the command.
|
Robotic vacuum cleaner started with a full dust container. Coffee maker started with a full waste coffee container
||

||
CONTAINER_EMPTY
|
The container is empty
|
В контейнер нужно что-нибудь положить.

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

Translation: It looks like you forgot to put the coffee beans in. The container is empty. Fill it up and repeat the command.
|
Coffee maker started with an empty bean container
||

||
DRIP_TRAY_FULL
|
Drip tray is full
|
Нужно очистить поддон.

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

Translation: The drain tray is full. Clean it and repeat the command.
|
Coffee maker started with a full drain tray
||

||
DEVICE_STUCK
|
The device is stuck
|
Кажется, на пути препятствие, его нужно убрать.

Translation: It looks like there's something in the way, please remove it.
|
_Аларм, возникло препятствие! Пожалуйста, устраните его._

Translation: Oops, there's something in the way! Please move it.
|
Command to a robotic vacuum cleaner that got stuck
||

||
DEVICE_OFF
|
The device is off
|
Сначала нужно включить устройство.

Translation: Turn on the device first.
|
_Ой, не получается. Сначала включите устройство._

Translation: Oops, something went wrong. Turn on the device first.
|
Command to a device that's turned off. If your device is not connected to a power source or the internet, use the DEVICE_UNREACHABLE error code
||

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

Translation: Update the firmware of the device you want to control.
|
_Не могу запустить без обновления. Пожалуйста, обновите прошивку вашему устройству (речь не обо мне)._

Translation: I can't run it without an update. Please update the firmware of your device (we're not talking about me).
|
Command for a device with an outdated firmware version that fails to support the specified command
||

||
NOT_ENOUGH_DETERGENT
|
There is not enough detergent
|
Добавьте моющее средство.

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

Translation: I'd love to, but there's no detergent. Add it and repeat the command.
|
Dishwasher started without any detergent
||

||
HUMAN_INVOLVEMENT_NEEDED
|
Human involvement is needed
|
Что-то не так с устройством: пожалуйста, осмотрите его.

Translation: Something's wrong with the device, please inspect it.
|
_Кажется, что-то пошло не так. Для устранения ошибки нужна ваша помощь._

Translation: Something went wrong. I need your help to fix the error.
|
Washing machine started with an overloaded drum.
||

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

Translation: The device is not responding. Check whether it's turned off or the internet is down.
|
_Не вижу устройства, проверьте, пожалуйста, его подключение._

Translation: I can't find the device, please check its connection.
|
Device started with power off or internet off
||

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

Translation: The device is already running. Wait until it finishes.
|
_Прямо сейчас устройство занято, попробуйте позднее._

Translation: Right now the device is busy, try again later.
|
Command to a washing machine that's already running the washing program
||

||
INTERNAL_ERROR
|
An unknown internal error
|
Случилось что-то непонятное. Подождите немного и попробуйте ещё раз.

Translation: Something unknown has happened. Wait a while and try again.
|
_Что-то пошло не так. Подождите немного и попробуйте снова._

Translation: Something went wrong. Wait a bit and try again.
|
Any unclassified error on the platform partner side
||

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

Translation: This device can't do that. Try doing something else.
|
_Устройство сообщает мне, что оно этого не умеет._

Translation: The device says that it doesn't know how to do that.
|
Command to change the brightness of light on the washing machine without the relevant skill
||

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

Translation: Some unknown value. Try a different one.
|
_Не нахожу такой возможности, увы._

Translation: I am afraid this is impossible.
|
A command to set a value outside of the allowed range: turning to channel 150 on a TV with 100 channels available
||

||
NOT_SUPPORTED_IN_CURRENT_MODE
|
Not supported in the current device mode
|
В этом режиме такая команда не работает.

Translation: This command is not supported in this mode.
|
_В текущем режиме это невозможно._

Translation: This isn't possible in the current mode.
|
The command to change the temperature of the air conditioner in ventilation mode (the air is not cooled or heated in this mode)
||

||
ACCOUNT_LINKING_ERROR
|
Error in the user's OAuth2 token
|
Попробуйте привязать устройство заново, а то оно отвязалось.

Translation: Try to link the device once again because it's unlinked.
|
_Устройство отвязалось, необходимо снова связать аккаунты в приложении Яндекса._

Translation: This device is now unlinked, you need to link your accounts in the Yandex app again.
|
An attempt to control a device with an expired or disabled OAuth2 token
||
||

DEVICE_NOT_FOUND

|
Device not found

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

Translation: You don't own this device.

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

Translation: I can't find this device.

|
The user deleted the device in the manufacturer's app

||
|#

<!--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> -->

## Request with error {#mistake}

The Yandex Smart Home platform uses the HTTP protocol and supports all the standard state codes. In some cases, we recommend using the codes from the table below.

#|
||
**Error code**
|
**Description**
|
**Explanation**
||

||
<!-- source: en/_includes/concepts/response-codes/400-col-1.md -->
400
<!-- endsource: en/_includes/concepts/response-codes/400-col-1.md -->
|
<!-- source: en/_includes/concepts/response-codes/400-col-2.md -->
Bad Request
<!-- endsource: en/_includes/concepts/response-codes/400-col-2.md -->
|
<!-- source: en/_includes/concepts/response-codes/400-col-3.md -->
Error in the request.
<!-- endsource: en/_includes/concepts/response-codes/400-col-3.md -->
||

||
401
|
Unauthorized
|
The authorization token wasn't passed.
||

||
403
|
Forbidden
|
- The user does not exist.
- No rights to access the resource.
||

||
<!-- source: en/_includes/concepts/response-codes/404-col-1.md -->
404
<!-- endsource: en/_includes/concepts/response-codes/404-col-1.md -->
|
<!-- source: en/_includes/concepts/response-codes/404-col-2.md -->
Not Found
<!-- endsource: en/_includes/concepts/response-codes/404-col-2.md -->
|
<!-- source: en/_includes/concepts/response-codes/404-col-3.md -->
The resource has not been found at the given path.
<!-- endsource: en/_includes/concepts/response-codes/404-col-3.md -->
||

||
<!-- source: en/_includes/concepts/response-codes/500-col-1.md -->
500
<!-- endsource: en/_includes/concepts/response-codes/500-col-1.md -->
|
<!-- source: en/_includes/concepts/response-codes/500-col-2.md -->
Internal Server Error
<!-- endsource: en/_includes/concepts/response-codes/500-col-2.md -->
|
<!-- source: en/_includes/concepts/response-codes/500-col-3.md -->
Internal server error.
<!-- endsource: en/_includes/concepts/response-codes/500-col-3.md -->
||
|#


<!-- {% include [support-support-button](../_includes/about/id-support/support-button.md) %}-->


