Mailkit: IMAP server returns [SERVERBUG] when performing a search

Created on 30 Mar 2019  路  7Comments  路  Source: jstedfast/MailKit

My code:

var folder = client.GetFolder(SpecialFolder.Trash);
folder.Open(FolderAccess.ReadOnly, cancel.Token);
var uids = folder.Search(query);

Look at this screenshot http://prntscr.com/n4yp68
Not exist folder "INBOX"

error in this part of code - var uids = folder.Search(query);

Exception text -"The IMAP server replied to the 'SEARCH' command with a 'NO' response: Internal error occurred. Refer to server log for more information.

LOG

Connected to imaps://imap.arcor.de:993/
S: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS AUTH=PLAIN] Ready
C: A00000000 AUTHENTICATE PLAIN
S: +
C: XXXXXXXX
S: A00000000 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY NOTIFY SPECIAL-USE QUOTA] Logged in
C: A00000001 NAMESPACE
S: * NAMESPACE (("INBOX." ".")) NIL NIL
S: A00000001 OK Namespace completed (0.001 + 0.000 secs).
C: A00000002 LIST "" "INBOX" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasChildren) "." INBOX
S: A00000002 OK List completed (0.001 + 0.000 secs).
C: A00000003 LIST (SPECIAL-USE) "" "*" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Trash) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Junk) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Sent) "." INBOX.SentMail
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Drafts) "." INBOX.Drafts
S: A00000003 OK List completed (0.001 + 0.000 secs).
C: A00000004 LIST "" "INBOX.%" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Unwanted
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.SentMail
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Sent
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Drafts
S: A00000004 OK List completed (0.001 + 0.000 secs).
C: A00000005 EXAMINE INBOX (CONDSTORE)
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk +FLAGS Junk)
S: * OK [PERMANENTFLAGS ()] Read-only mailbox.
S: * 5 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 1] First unseen.
S: * OK [UIDVALIDITY 1499333176] UIDs valid
S: * OK [UIDNEXT 1860] Predicted next UID
S: * OK [HIGHESTMODSEQ 4026] Highest
S: A00000005 OK [READ-ONLY] Examine completed (0.001 + 0.000 secs).
C: A00000006 EXAMINE INBOX (CONDSTORE)
S: * OK [CLOSED] Previous mailbox closed.
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk +FLAGS Junk)
S: * OK [PERMANENTFLAGS ()] Read-only mailbox.
S: * 5 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 1] First unseen.
S: * OK [UIDVALIDITY 1499333176] UIDs valid
S: * OK [UIDNEXT 1860] Predicted next UID
S: * OK [HIGHESTMODSEQ 4026] Highest
S: A00000006 OK [READ-ONLY] Examine completed (0.001 + 0.000 secs).

So, as u have solution of this bug? Thanx

question

All 7 comments

Where is the SEARCH command in your logs? I need the full logs.

Connected to imaps://imap.arcor.de:993/
S: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS AUTH=PLAIN] Ready
C: A00000000 AUTHENTICATE PLAIN
S: +
C: XXXXXXXX
S: A00000000 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY NOTIFY SPECIAL-USE QUOTA] Logged in
C: A00000001 NAMESPACE
S: * NAMESPACE (("INBOX." ".")) NIL NIL
S: A00000001 OK Namespace completed (0.001 + 0.000 secs).
C: A00000002 LIST "" "INBOX" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasChildren) "." INBOX
S: A00000002 OK List completed (0.002 + 0.000 + 0.001 secs).
C: A00000003 LIST (SPECIAL-USE) "" "*" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Trash) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Junk) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Sent) "." INBOX.SentMail
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Drafts) "." INBOX.Drafts
S: A00000003 OK List completed (0.001 + 0.000 secs).
C: A00000004 LIST "" "INBOX.%" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Unwanted
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.SentMail
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Sent
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Drafts
S: A00000004 OK List completed (0.001 + 0.000 secs).
C: A00000005 EXAMINE INBOX.Trash (CONDSTORE)
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk +FLAGS)
S: * OK [PERMANENTFLAGS ()] Read-only mailbox.
S: * 61 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 4] First unseen.
S: * OK [UIDVALIDITY 1348737663] UIDs valid
S: * OK [UIDNEXT 7161] Predicted next UID
S: * OK [HIGHESTMODSEQ 1026] Highest
S: A00000005 OK [READ-ONLY] Examine completed (0.002 + 0.000 + 0.001 secs).
C: A00000006 UID SEARCH RETURN () FROM facebook.com
S: A00000006 NO [SERVERBUG] Internal error occurred. Refer to server log for more information. [2019-03-30 16:02:48] (0.001 + 0.000 secs).

Ok, the [SERVERBUG] response-code suggests that the server developers are aware that the syntax MailKit is using is correct but they aren't handling it (yet?).

After authenticating, try adding this snippet of code:

client.Capabilities &= ~(ImapCapabilities.ESearch | ImapCapabilities.SearchResults);

What I think is happening is that the server is breaking because MailKit is using the ESEARCH/SEARCHRES search syntax (RETURN ()).

You can see where the code adds that part of the query string here: https://github.com/jstedfast/MailKit/blob/master/MailKit/Net/Imap/ImapFolderSearch.cs#L654

The above code snippet essentially disables those SEARCH extension features so that MailKit won't attempt to use them.

That should work around the issue for you, I would think. Let me know how that goes for you either way.

Thank you very much for the answer. I will try to do it

Unfortunately not working.

Screenshot
http://prntscr.com/n57tej

LOG
Connected to imaps://imap.arcor.de:993/
S: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS AUTH=PLAIN] Ready
C: A00000000 AUTHENTICATE PLAIN
S: +
C: XXXXXXXX
S: A00000000 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY NOTIFY SPECIAL-USE QUOTA] Logged in
C: A00000001 NAMESPACE
S: * NAMESPACE (("INBOX." ".")) NIL NIL
S: A00000001 OK Namespace completed (0.001 + 0.000 secs).
C: A00000002 LIST "" "INBOX" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasChildren) "." INBOX
S: A00000002 OK List completed (0.001 + 0.000 + 0.001 secs).
C: A00000003 LIST (SPECIAL-USE) "" "*" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Trash) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \Marked \Junk) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Sent) "." INBOX.SentMail
S: * LIST (\Subscribed \HasNoChildren \UnMarked \Drafts) "." INBOX.Drafts
S: A00000003 OK List completed (0.001 + 0.000 secs).
C: A00000004 LIST "" "INBOX.%" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Unwanted
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Trash
S: * LIST (\Subscribed \HasNoChildren \Marked) "." INBOX.Spam
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.SentMail
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Sent
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Drafts
S: A00000004 OK List completed (0.001 + 0.000 secs).
C: A00000005 EXAMINE INBOX.Trash (CONDSTORE)
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk +FLAGS)
S: * OK [PERMANENTFLAGS ()] Read-only mailbox.
S: * 61 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 4] First unseen.
S: * OK [UIDVALIDITY 1348737663] UIDs valid
S: * OK [UIDNEXT 7161] Predicted next UID
S: * OK [HIGHESTMODSEQ 1026] Highest
S: A00000005 OK [READ-ONLY] Examine completed (0.001 + 0.000 secs).
C: A00000006 UID SEARCH FROM facebook.com
S: A00000006 NO [SERVERBUG] Internal error occurred. Refer to server log for more information. [2019-03-30 21:08:34] (0.001 + 0.000 secs).

You might need to contact your mail server admins and ask why you are getting that error. I don't know what else it could be.

Looks like the server might be Dovecot based on the error text: https://wiki1.dovecot.org/Logging

Was this page helpful?
0 / 5 - 0 ratings