Диагностика доставки
Сначала определите, принял ли Депешер сообщение. Это отделяет ошибку 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 указывают на соответствующий этап. Отдельно учитывайте ограничения тарифа.
Правило не выполнилось или выбрано другое
- Проверьте контекст и входящий канал. Сохранение определения в каталоге ещё не подключает его к каналу.
- Проверьте общее включение правила и локальное включение его подключения.
- Проверьте порядок: выполняется только первое совпадение. Раннее общее правило может опередить нужное.
- Проверьте реальные исходные тело и Content-Type, тип JSON-значения, регистр, пробелы и путь.
- Если обычные правила не подошли, проверьте подключённый default; без активного default используются базовые настройки канала.
JSON «Поле не равно» не совпадает с отсутствующим полем, объектом, массивом или не-JSON запросом. null — существующее значение, а строка "1" отличается от числа 1. Подробнее — условия.
Запустите проверку на примере с тем же телом. Смотрите выбранную ветку, порядок проверок и предупреждения. Проверка черновика использует изменения формы и временное подключение; реальный приём использует сохранённые определения и постоянные подключения.
Проверьте получателей и доставку
| Ситуация | Что проверить |
|---|---|
| Личное сообщение есть, внешнего уведомления нет | Базовые связи канала и дополнительные цели выбранного правила; активность и подтверждение исходящих каналов |
| При пустом выборе в правиле сообщение отправилось | Базовые назначения канала: пустое действие не отключает их. Для полностью условной доставки очистите базовый список |
| В организации нет сообщения у сотрудника | Базовых получателей и дополнительные цели выбранного правила; состав команды; текущий период участия |
| Назначенное сообщение есть, внешней отправки нет | «Мою доставку» сотрудника для этого входящего канала и доступность выбранных способов |
| Канала нет в «Моей доставке» | Контекст организации и назначение напрямую или через свою команду в канале либо подключённом правиле |
| Канал виден в «Моей доставке», но сообщения нет | Применение нужного правила: наличие потенциального назначения не означает получение каждого события |
| После удаления прямого назначения сообщения продолжают приходить | Другие основания: назначение через команду или выбранное правило. Снятие одного основания не удаляет остальные |
Для предварительной настройки внешней доставки достаточно назначения через подключённое правило. Отключённые определения и подключения тоже оставляют канал в «Моей доставке», но не участвуют в обработке новых сообщений. Правило только в каталоге, без подключения к каналу, не даёт такого основания. Проверьте, что сотрудник выбран напрямую или входит в указанную команду. Затем он настраивает свою доставку; добавлять его в базовый список только ради настройки не требуется.
Для конкретного события базовые назначения и цели выбранного правила объединяются без повторов. Если оба источника не дают получателей, личные назначения в организации не создаются. Режим «Только в ЛК» отличается: сотрудник назначен, сообщение у него есть, внешние способы не выбраны. Подключение доставки позже не рассылает прежнюю историю.
Пустая команда и удалённый сотрудник не дают действующих получателей. Снятие назначения не закрывает старые сообщения действующего участника; выход или исключение из организации закрывает историю прежнего периода. Подробности — организационная доставка.
Проверьте подстановки
Сравните в подробностях исходное тело, обработанный текст и итоговое уведомление. {{message}} вставляет рабочий текст после преобразований, а {{raw_message}} — исходный запрос. Активный шаблон заменяет весь стандартный текст; победившее правило может выбрать другой шаблон или явно отключить его.
Если поле JSON пустое, проверьте Content-Type: application/json, путь, регистр ключей и наличие значения. Отсутствующее поле и null дают пустую строку в шаблоне. Если пуста {{vars.site}}, проверьте наличие операции извлечения и точное имя переменной. JSON читается из исходного запроса даже после изменения текста.
При предупреждении об отсутствующем JSON-пути преобразование не взяло значение; при отсутствии regex-совпадения переменные не извлечены. Проверяйте соответствующую операцию и её вход в цепочке. «Задать текст сообщения» не раскрывает подстановки: поместите их в шаблон. Подробнее — «Шаблоны и подстановки».
Конфликт при сохранении
Конфликт версии означает, что определение или конфигурация изменились после загрузки формы. Сохраните нужные данные черновика, загрузите актуальную версию, сверяйте изменения и повторите сохранение. При недоступном шаблоне или метке выберите действующий ресурс в том же контексте и перепроверьте правило.
Проверьте доступность сервиса
Текущий статус Депешера можно посмотреть на странице «Аптайм сервиса».