Удаление формы в рекламном кабинете или на сайте не всегда удаляет связанные 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, очередь, кэш и локальную запись. Я могу найти оставшийся источник запросов и настроить безопасный жизненный цикл интеграции.