Удаление формы в рекламном кабинете или на сайте не всегда удаляет связанные webhook, задания синхронизации и сохранённые токены. Поэтому backend может продолжать опрашивать несуществующий объект и засорять журнал ошибками.

Найдите инициатора запроса по времени и request id: входящий webhook, cron, worker или клиентский скрипт. Затем отключайте конкретную связь, а не всю интеграцию.

Что сделать в первую очередь

  • Сохраните URL, частоту и код ответа лишнего запроса.
  • Определите процесс или внешний сервис, который его создаёт.
  • Проверьте статус формы в локальной базе.
  • Остановите повтор только для удалённого form_id.

Почему возникает проблема

Объект удаляется в одном сервисе, но его локальная конфигурация остаётся активной.

  • Webhook-подписка не отписана перед удалением.
  • Cron выбирает запись без проверки deleted_at.
  • Задания уже накопились в очереди.
  • Кэш списка форм не был инвалидирован.
  • Frontend содержит старый embed или tracking id.

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

  • Поищите form_id в базе, очереди и конфигурации.
  • Проверьте планировщик и активные worker.
  • Сверьте список webhook в кабинете поставщика.
  • Проверьте страницы сайта на старый скрипт.
  • Убедитесь, что запрос не приходит из отдельной тестовой среды.

Как исправить

Удаление интегрированного объекта должно быть многоэтапным и повторяемым.

  • Сначала помечайте форму inactive и останавливайте новые задания.
  • Отпишите webhook и зафиксируйте результат.
  • Удалите или отмените ожидающие задания по form_id.
  • Добавьте проверку deleted_at во все выборки.
  • После периода восстановления выполните окончательную очистку.

Как проверить результат

  • Новые запросы по удалённому form_id прекращены.
  • Другие формы продолжают синхронизацию.
  • Повторный вызов удаления безопасен.
  • В интерфейсе нет устаревшей ссылки или embed.

Как не допустить повторения

  • Реализуйте единый lifecycle интеграции.
  • Храните внешний статус и дату последней синхронизации.
  • Мониторьте повторяющиеся 404 и 410.
  • Добавьте административный список активных подписок.

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

  • Не удаляйте все токены проекта ради одной формы.
  • Не скрывайте ошибки бесконечными повторами.
  • Не очищайте запись до отмены связанных заданий.

Что подготовить для диагностики

  • Внешний form_id и проект.
  • Пример запроса и ответ.
  • Список cron и очередей интеграции.
  • Дата и способ удаления формы.

Частые вопросы

Почему запросы продолжаются несколько часов?

В очереди могли остаться задания с повторами, либо несколько worker уже получили их до удаления.

Что означает ответ 410?

Обычно ресурс удалён окончательно; интеграция должна прекратить повторы и деактивировать локальную запись.

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

Если источник запроса неизвестен или интеграция распределена между сайтом, CRM и рекламным кабинетом, потребуется сквозная трассировка по form_id.

Итог

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