Если Teams webhook перестал принимать карточки, причина может быть в устаревшем connector, изменении URL, неверном формате Adaptive Card, размере payload, rate limit или ошибке в JSON.

Сначала сохраните точный HTTP-ответ от Teams и payload карточки. Без этого сложно понять, проблема в канале, формате или сетевой отправке.

Коротко: что делать

  • Проверить HTTP-код и тело ответа webhook
  • Проверить, не изменился ли URL connector
  • Проверить валидность JSON и schema Adaptive Card
  • Уменьшить payload и проверить минимальную карточку
  • Проверить лимиты и частоту отправки

Основные причины

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

  • Webhook URL был удален, заменен или истек
  • Payload не соответствует поддерживаемой версии Adaptive Cards
  • Карточка слишком большая или содержит неподдерживаемые элементы
  • Отправка идет с неверным Content-Type
  • Сервис Teams ограничивает частые уведомления

Пошаговая диагностика

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

  • Отправить минимальную тестовую карточку через curl/Postman
  • Проверить payload в Adaptive Card Designer
  • Сравнить старую рабочую и новую нерабочую карточку
  • Проверить логи отправителя и retry
  • Проверить настройки канала Teams и connector

Как исправить проблему

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

  • Обновить webhook URL или connector
  • Привести карточку к поддерживаемой schema/version
  • Убрать неподдерживаемые элементы и лишний объем
  • Настроить правильные заголовки и обработку ошибок
  • Добавить очередь и retry с учетом rate limit

Безопасный план решения

Сначала добейтесь отправки минимальной карточки. Потом добавляйте поля по одному, чтобы быстро найти элемент, который ломает payload.

Чего не стоит делать

  • Не отправлять один огромный JSON без проверки
  • Не игнорировать HTTP-ответ Teams
  • Не повторять отправку бесконечно при ошибке
  • Не хранить webhook URL в публичном репозитории

Что подготовить перед исправлением

  • Webhook URL через безопасный канал или возможность проверить на вашей стороне
  • Пример payload карточки
  • HTTP-ответ Teams
  • Код отправки уведомления

FAQ

Почему простое сообщение отправляется, а карточка нет?

Скорее всего, проблема в schema, размере или конкретном элементе Adaptive Card.

Можно ли проверить карточку без кода?

Да, через минимальный curl/Postman и Adaptive Card Designer.

Что делать при rate limit?

Добавить очередь, паузы и дедупликацию уведомлений, а не спамить повторными запросами.

Когда стоит обратиться за помощью

Помощь нужна, если Teams уведомления используются для заявок, мониторинга, инцидентов или внутренних процессов.

Итог

Начните с минимальной карточки и HTTP-ответа. Если нужно починить Teams webhook, Adaptive Cards и надежную отправку уведомлений, можно написать в Telegram @rabotator_support.