From 57821ab6f9df343064b9d7660de37920a58d2dd4 Mon Sep 17 00:00:00 2001 From: Muhsin <12408980+muhsin-k@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:30:23 +0400 Subject: [PATCH] chore: clear Twilio number webhooks during teardown --- .../app/services/twilio/voice_teardown_service.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/enterprise/app/services/twilio/voice_teardown_service.rb b/enterprise/app/services/twilio/voice_teardown_service.rb index 12e567983..87e991f47 100644 --- a/enterprise/app/services/twilio/voice_teardown_service.rb +++ b/enterprise/app/services/twilio/voice_teardown_service.rb @@ -3,6 +3,7 @@ class Twilio::VoiceTeardownService def perform delete_twiml_app if channel.twiml_app_sid.present? + clear_number_webhooks rescue StandardError => e Rails.logger.error("TWILIO_VOICE_TEARDOWN_ERROR: #{e.class} #{e.message} phone=#{channel.phone_number} account=#{channel.account_id}") ensure @@ -15,6 +16,17 @@ class Twilio::VoiceTeardownService twilio_client.applications(channel.twiml_app_sid).delete end + def clear_number_webhooks + numbers = twilio_client.incoming_phone_numbers.list(phone_number: channel.phone_number) + return if numbers.empty? + + twilio_client + .incoming_phone_numbers(numbers.first.sid) + .update(voice_url: '', status_callback: '') + rescue StandardError => e + Rails.logger.error("TWILIO_VOICE_TEARDOWN_WEBHOOK_ERROR: #{e.class} #{e.message} phone=#{channel.phone_number} account=#{channel.account_id}") + end + def clear_voice_credentials channel.update(twiml_app_sid: nil) end