diff --git a/app/builders/messages/messenger/message_builder.rb b/app/builders/messages/messenger/message_builder.rb index be1f98b43..ecd6f06ea 100644 --- a/app/builders/messages/messenger/message_builder.rb +++ b/app/builders/messages/messenger/message_builder.rb @@ -28,6 +28,10 @@ class Messages::Messenger::MessageBuilder filename: attachment_file.original_filename, content_type: attachment_file.content_type ) + # The Attachment row is saved before the blob is attached, so the + # after_create_commit broadcast bails on `file.attached?`. Re-fire here + # for audio so the bubble updates without waiting on transcription. + attachment.message&.reload&.send_update_event if attachment.file_type.to_sym == :audio end def attachment_params(attachment) diff --git a/app/jobs/webhooks/whatsapp_events_job.rb b/app/jobs/webhooks/whatsapp_events_job.rb index b0bede8b0..49b7265b8 100644 --- a/app/jobs/webhooks/whatsapp_events_job.rb +++ b/app/jobs/webhooks/whatsapp_events_job.rb @@ -128,3 +128,5 @@ class Webhooks::WhatsappEventsJob < MutexApplicationJob return channel if channel && channel.provider_config['phone_number_id'] == phone_number_id end end + +Webhooks::WhatsappEventsJob.prepend_mod_with('Webhooks::WhatsappEventsJob') diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 769e134be..8c87ff433 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -104,11 +104,23 @@ class Attachment < ApplicationRecord audio_file_data = base_data.merge(file_metadata) audio_file_data.merge( { + # ActiveStorage's redirect endpoint defaults to Content-Disposition: attachment, + # which makes