Infos:
- Used Zammad version: 3.0.x
- Used Zammad installation source: docker-compose
- Operating system: Debian 9
- Browser + version: Chrome 76
Expected behavior:
- No errors while fetching mails via IMAP from Cyrus IMAPd 3.0.8.
Actual behavior:
-
I’m seeing the following error message:
{ "healthy": false, "message": "Channel: Email::Account in Can't use Channel::Driver::Imap: #<Net::IMAP::ResponseParseError: unknown attribute `MODSEQ' for {2}>;unprocessable mails: 6", "issues": [ "Channel: Email::Account in Can't use Channel::Driver::Imap: #<Net::IMAP::ResponseParseError: unknown attribute `MODSEQ' for {2}>", "unprocessable mails: 6" ], "actions": [] }
A more detailed error message taken from the scheduler log:
E, [2019-08-14T10:16:48.481485 #1-69844821390380] ERROR -- : Can't use Channel::Driver::Imap: #<Net::IMAP::ResponseParseError: unknown attribute `MODSEQ' for {1}> E, [2019-08-14T10:16:48.482052 #1-69844821390380] ERROR -- : unknown attribute `MODSEQ' for {1} (Net::IMAP::ResponseParseError) /usr/local/lib/ruby/2.4.0/net/imap.rb:3421:in `parse_error' /usr/local/lib/ruby/2.4.0/net/imap.rb:2314:in `msg_att' /usr/local/lib/ruby/2.4.0/net/imap.rb:2280:in `numeric_response' /usr/local/lib/ruby/2.4.0/net/imap.rb:2222:in `response_untagged' /usr/local/lib/ruby/2.4.0/net/imap.rb:2198:in `response' /usr/local/lib/ruby/2.4.0/net/imap.rb:2124:in `parse' /usr/local/lib/ruby/2.4.0/net/imap.rb:1219:in `get_response' /usr/local/lib/ruby/2.4.0/net/imap.rb:1127:in `receive_responses' /usr/local/lib/ruby/2.4.0/net/imap.rb:1109:in `block in initialize' /usr/local/bundle/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
MODSEQ seems to be part of an IMAP extension: https://tools.ietf.org/html/rfc4551
Maybe the IMAP parser that Zammad uses doesn’t understand it? I’ve found a bug report for MODSEQ support for Net::IMAP, and apparently it has been implemented, but the release is scheduled for “next major”, so Ruby 3.0…?
EDIT: ah, no, the bug report is just confusing. If I’m reading the information in the commit correctly, this should be in Ruby >2.5.0: https://github.com/ruby/ruby/commit/ae91976d561e3855753b936fa9ac6048f64e30bd . The Zammad container we’re currently using runs Ruby 2.4.4, so that would explain why MODSEQ isn’t supported yet. Fixing this might be as simple as upgrading our Zammad installation to -3.1.0-9, because that uses Ruby 2.5.5
Steps to reproduce the behavior:
- Not sure. We’ve been using Cyrus 2.5.10 for ages, and have upgraded to Cyrus 3.0.8 on 2019-03-26. But this issue only seems to have occurred on 2019-08-13 between 20:39 - 21:15; at least there aren’t any older mails in
unprocessable_mails
. Not sure why this only occurs so sporadically, and how this could be reproduced?