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

Диагностика доставки ​

Сначала определите, принял ли Депешер сообщение. Это отделяет ошибку HTTP-запроса от проблемы доставки в Email или Telegram.

Проверьте HTTP-ответ ​

Запустите запрос с выводом заголовков и убедитесь, что адрес канала скопирован полностью:

bash
curl --include \
  --header 'Content-Type: text/plain' \
  --data 'Проверка доставки' \
  'https://depesher.ru/w/ВАШ_PUBLIC_ID'

Для защищённого входящего канала передайте актуальный токен в заголовке Authorization: Bearer ….

Проверьте историю ​

HTTP 202 подтверждает принятие, но не завершение внешней доставки. В личном контексте откройте историю входящего канала. В организации проверяйте «Мои уведомления» назначенного сотрудника: у администратора нет общей истории.

Если сообщение есть, откройте его и проверьте сохранённые подробности обработки и фактический маршрут. Текущие настройки правила могли измениться после приёма: старый результат не пересчитывается.

В строке «Доставка» наведите указатель на нужный канал или нажмите на него, чтобы посмотреть состояние и время передачи. Значения кружков описаны в статье «Статусы доставки сообщений». Синий кружок сам по себе не означает проблему: подтверждение доставки доступно не во всех каналах.

Проверьте формат ​

Депешер принимает text/plain, text/markdown и application/json. Явно передавайте нужный тип. Пустое JSON-тело запрещено. Если итоговый рабочий текст пуст и эффективного шаблона нет, возникает message_body_required. Вернитесь к рабочему примеру из статьи «Первое уведомление», а затем добавляйте параметры своего запроса по одному.

Для JSON ошибка invalid_message_json означает некорректное или пустое тело, превышение глубины декодера 64 либо число вне диапазона PHP float. При HTTP 413 проверьте исходное тело, промежуточные результаты обработки, переменные и итоговый текст: технический лимит — 1 048 576 байт. Коды event_rule_result_too_large и notification_body_too_large указывают на соответствующий этап. Отдельно учитывайте ограничения тарифа.

Правило не выполнилось или выбрано другое ​

  1. Проверьте контекст и входящий канал. Сохранение определения в каталоге ещё не подключает его к каналу.
  2. Проверьте общее включение правила и локальное включение его подключения.
  3. Проверьте порядок: выполняется только первое совпадение. Раннее общее правило может опередить нужное.
  4. Проверьте реальные исходные тело и Content-Type, тип JSON-значения, регистр, пробелы и путь.
  5. Если обычные правила не подошли, проверьте подключённый default; без активного default используются базовые настройки канала.

JSON «Поле не равно» не совпадает с отсутствующим полем, объектом, массивом или не-JSON запросом. null — существующее значение, а строка "1" отличается от числа 1. Подробнее — условия.

Запустите проверку на примере с тем же телом. Смотрите выбранную ветку, порядок проверок и предупреждения. Проверка черновика использует изменения формы и временное подключение; реальный приём использует сохранённые определения и постоянные подключения.

Проверьте получателей и доставку ​

СитуацияЧто проверить
Личное сообщение есть, внешнего уведомления нетБазовые связи канала и дополнительные цели выбранного правила; активность и подтверждение исходящих каналов
При пустом выборе в правиле сообщение отправилосьБазовые назначения канала: пустое действие не отключает их. Для полностью условной доставки очистите базовый список
В организации нет сообщения у сотрудникаБазовых получателей и дополнительные цели выбранного правила; состав команды; текущий период участия
Назначенное сообщение есть, внешней отправки нет«Мою доставку» сотрудника для этого входящего канала и доступность выбранных способов
Канала нет в «Моей доставке»Контекст организации и назначение напрямую или через свою команду в канале либо подключённом правиле
Канал виден в «Моей доставке», но сообщения нетПрименение нужного правила: наличие потенциального назначения не означает получение каждого события
После удаления прямого назначения сообщения продолжают приходитьДругие основания: назначение через команду или выбранное правило. Снятие одного основания не удаляет остальные

Для предварительной настройки внешней доставки достаточно назначения через подключённое правило. Отключённые определения и подключения тоже оставляют канал в «Моей доставке», но не участвуют в обработке новых сообщений. Правило только в каталоге, без подключения к каналу, не даёт такого основания. Проверьте, что сотрудник выбран напрямую или входит в указанную команду. Затем он настраивает свою доставку; добавлять его в базовый список только ради настройки не требуется.

Для конкретного события базовые назначения и цели выбранного правила объединяются без повторов. Если оба источника не дают получателей, личные назначения в организации не создаются. Режим «Только в ЛК» отличается: сотрудник назначен, сообщение у него есть, внешние способы не выбраны. Подключение доставки позже не рассылает прежнюю историю.

Пустая команда и удалённый сотрудник не дают действующих получателей. Снятие назначения не закрывает старые сообщения действующего участника; выход или исключение из организации закрывает историю прежнего периода. Подробности — организационная доставка.

Проверьте подстановки ​

Сравните в подробностях исходное тело, обработанный текст и итоговое уведомление. {{message}} вставляет рабочий текст после преобразований, а {{raw_message}} — исходный запрос. Активный шаблон заменяет весь стандартный текст; победившее правило может выбрать другой шаблон или явно отключить его.

Если поле JSON пустое, проверьте Content-Type: application/json, путь, регистр ключей и наличие значения. Отсутствующее поле и null дают пустую строку в шаблоне. Если пуста {{vars.site}}, проверьте наличие операции извлечения и точное имя переменной. JSON читается из исходного запроса даже после изменения текста.

При предупреждении об отсутствующем JSON-пути преобразование не взяло значение; при отсутствии regex-совпадения переменные не извлечены. Проверяйте соответствующую операцию и её вход в цепочке. «Задать текст сообщения» не раскрывает подстановки: поместите их в шаблон. Подробнее — «Шаблоны и подстановки».

Конфликт при сохранении ​

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

Проверьте доступность сервиса ​

Текущий статус Депешера можно посмотреть на странице «Аптайм сервиса».