iachat/app/models/channel
Tanmay Deep Sharma 7acd239c70
fix: call authorization_error! on IMAP auth failures (#13560)
## Notion document

https://www.notion.so/chatwoot/Email-IMAP-Issue-30aa5f274c928062aa6bddc2e5877a63?showMoveTo=true&saveParent=true

## Description

PLAIN IMAP channels (non-OAuth) were silently retrying failed
authentication every minute, forever. When credentials are
wrong/expired, Net::IMAP::NoResponseError was caught and logged but
channel.authorization_error! was never called — so the Redis error
counter never incremented, reauthorization_required? was never set, and
admins were never notified. OAuth channels already had this handled
correctly via the Reauthorizable concern.
Additionally, Net::IMAP::ResponseParseError (raised by non-RFC-compliant
IMAP servers) was falling through to the StandardError catch-all,
flooding
Estimated impact before fix: ~70–75 broken IMAP inboxes generating
~700k–750k wasted Sidekiq jobs/week.

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2026-02-26 18:01:23 +05:30
..
api.rb chore: Centralize outgoing message reply restrictions for all the channels (#11279) 2025-04-12 08:52:12 +05:30
email.rb fix: call authorization_error! on IMAP auth failures (#13560) 2026-02-26 18:01:23 +05:30
facebook_page.rb feat: Secure external credentials with database encryption (#12648) 2025-10-13 18:05:12 +05:30
instagram.rb feat: Secure external credentials with database encryption (#12648) 2025-10-13 18:05:12 +05:30
line.rb fix: Disable SSL verification for LINE webhooks in development (#12960) 2025-11-26 22:38:26 +05:30
sms.rb feat: hide CSAT survey URLs from agents in dashboard (#11622) 2025-06-11 23:39:47 +05:30
telegram.rb feat: Standardize rich editor across all channels (#12600) 2025-12-08 14:43:45 +05:30
tiktok.rb feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
twilio_sms.rb feat: Secure external credentials with database encryption (#12648) 2025-10-13 18:05:12 +05:30
twitter_profile.rb feat: Secure external credentials with database encryption (#12648) 2025-10-13 18:05:12 +05:30
web_widget.rb feat: Introduce allowed_domains for web widget (#12450) 2025-09-17 10:01:27 +05:30
whatsapp.rb fix: Setup webhooks for manual WhatsApp Cloud channel creation (#13278) 2026-01-19 14:12:36 +04:00