From dc4e13b3008edf76eee63b3419f9ab2281ccf7b8 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Fri, 5 Jan 2024 13:10:26 -0800 Subject: [PATCH] chore: Fix for empty update case for messages (#8641) We observed an issue in production where the external webhook for an API inbox was failing. This, in turn, calls message update to update message status to failed. This causes a loop because rails trigger after_update callbacks even for empty commits. Ref: rails/rails#44500 --- app/models/message.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/models/message.rb b/app/models/message.rb index 751890acf..48507adb7 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -299,6 +299,10 @@ class Message < ApplicationRecord end def dispatch_update_event + # ref: https://github.com/rails/rails/issues/44500 + # we want to skip the update event if the message is not updated + return if previous_changes.blank? + Rails.configuration.dispatcher.dispatch(MESSAGE_UPDATED, Time.zone.now, message: self, performed_by: Current.executed_by, previous_changes: previous_changes) end