Перейти к основному содержимому

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

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

предупреждение

Возможность доступна только в проектах на движке версии 2.

Поддерживаемые блоки

Ветку обработки ошибок можно настроить для следующих блоков:

  • Агент
  • Функция (кроме режима инструмента)
  • Условие
  • Код

Как настроить

Соедините красный выход с блоком, который будет выполняться при возникновении ошибки.

Процесс с обработкой ошибки

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

Примеры процессов

Обработка ошибки при оформлении заявки

Агент собирает данные клиента и оформляет заявку на банковскую карту. Если заявку создать не удается, ветка Ошибка записывает сведения о проблеме в журнал с помощью Log.error() и уведомляет сотрудника по email.

Резервная функция при сбое основного API

В случае если основной API недоступен, процесс может вызвать резервную функцию:

Получение данных об ошибке

Информацию о последней ошибке в рамках сессии можно получить с помощью встроенной функции Context.getLastStateError().

Примеры результата:

  • Таймаут в блоке Агент:

    {
    "type" : "AgentTotalResponseTimeoutExceeded",
    "code" : "AGENT_RESPONSE_TIMEOUT",
    "message" : "Agent '/agent_example' total response timeout exceeded (10086 ms > 10000 ms)",
    "nodeId" : "/agent_example",
    "source" : "system.agent",
    "timestamp" : "2026-07-21T13:12:29.923197874Z"
    }
  • Ошибка в блоке Код:

    {
    "type" : "JsExecutionException",
    "code" : "JS_EXECUTION",
    "message" : "JS async error: Error: Rate limit exceeded",
    "nodeId" : "/code_example",
    "source" : "system.Code.executeJs",
    "timestamp" : "2026-07-21T13:16:16.791687737Z"
    }
  • Если ошибок в сессии еще не было, функция вернет undefined.