chore: Rescue slack link unfurling errors. (#11033)

Fixes
https://linear.app/chatwoot/issue/CW-4122/slackwebapierrorsmissingscope-missing-scope

This PR adds the ability to handle errors when scopes are missing during
link unfurling. Since link unfurling is just a nice-to-have feature that
doesn't affect core functionality, we will silently ignore these errors.

---------

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Muhsin Keloth
2025-03-07 05:27:16 +05:30
committed by GitHub
parent 8d85a02ca9
commit a0cf25ccde
2 changed files with 17 additions and 0 deletions

View File

@@ -269,6 +269,19 @@ describe Integrations::Slack::SendOnSlackService do
expect(hook).to be_disabled
expect(hook).to have_received(:prompt_reauthorization!)
end
it 'logs MissingScope error during link unfurl' do
unflur_payload = { channel: 'channel', ts: 'timestamp', unfurls: {} }
error = Slack::Web::Api::Errors::MissingScope.new('Missing required scope')
expect(slack_client).to receive(:chat_unfurl)
.with(unflur_payload)
.and_raise(error)
expect(Rails.logger).to receive(:warn).with('Slack: Missing scope error: Missing required scope')
link_builder.link_unfurl(unflur_payload)
end
end
context 'when message contains mentions' do