From 68b8d721a7cb169f3a037d164999f9baa5f62b1b Mon Sep 17 00:00:00 2001 From: Muhsin Keloth Date: Wed, 1 Nov 2023 06:10:17 +0530 Subject: [PATCH] fix: Update the message status to `failed` if the outgoing Facebook message fails. (#8258) --- app/services/facebook/send_on_facebook_service.rb | 1 + spec/services/facebook/send_on_facebook_service_spec.rb | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/services/facebook/send_on_facebook_service.rb b/app/services/facebook/send_on_facebook_service.rb index 776e8f5e8..1f60ff7a5 100644 --- a/app/services/facebook/send_on_facebook_service.rb +++ b/app/services/facebook/send_on_facebook_service.rb @@ -11,6 +11,7 @@ class Facebook::SendOnFacebookService < Base::SendOnChannelService rescue Facebook::Messenger::FacebookError => e # TODO : handle specific errors or else page will get disconnected handle_facebook_error(e) + message.update!(status: :failed, external_error: e.message) end def send_message_to_facebook(delivery_params) diff --git a/spec/services/facebook/send_on_facebook_service_spec.rb b/spec/services/facebook/send_on_facebook_service_spec.rb index 38d33e6d7..59a9bfea8 100644 --- a/spec/services/facebook/send_on_facebook_service_spec.rb +++ b/spec/services/facebook/send_on_facebook_service_spec.rb @@ -58,6 +58,8 @@ describe Facebook::SendOnFacebookService do described_class.new(message: message).perform expect(facebook_channel.authorization_error_count).to eq(1) + expect(message.reload.status).to eq('failed') + expect(message.reload.external_error).to eq('Error validating access token') end it 'if message with attachment is sent from chatwoot and is outgoing' do