Closed Bug 1647656 Opened 6 years ago Closed 5 years ago

Thunderbird Webextensions .messages.getFull() raises Exception 0x80004005 (NS_ERROR_FAILURE) on mail with attachment

Categories

(Thunderbird :: Add-Ons: Extensions API, defect)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: florian.unger, Unassigned)

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.98 Safari/537.36

Steps to reproduce:

I try to access an email that has one or more Attachments with MailExtension API .messages.getFull
In the Account settings "Message Synchronizing" is disabled => mails are not buffered locally for offline use.

Actual results:

When I try to open the mail with .messages.getFull I either get an exception:
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIMsgMessageService.streamMessage]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/gloda/mimemsg.js :: MsgHdrToMimeMessage :: line 238" data: no] mimemsg.js:238:16
MsgHdrToMimeMessage resource:///modules/gloda/mimemsg.js:238
getFull chrome://messenger/content/parent/ext-messages.js:158
getFull chrome://messenger/content/parent/ext-messages.js:156
getFull self-hosted:1003
result resource://gre/modules/ExtensionParent.jsm:1139
withPendingBrowser resource://gre/modules/ExtensionParent.jsm:770
result resource://gre/modules/ExtensionParent.jsm:1139
withTiming resource://gre/modules/ExtensionParent.jsm:1100
call resource://gre/modules/ExtensionParent.jsm:1138
InterpretGeneratorResume self-hosted:1284
AsyncFunctionNext self-hosted:839

or a MessagePart object with size 0 is returned.

Expected results:

API call .messages.getFull should have pulled the message from the IMAP server and return the full message.

Account settings "Message Synchronizing" disabled (=> mails are not buffered locally for offline use)
only affects mails with attachment.
Emails without attachment are returned correctly by MailExtension API .messages.getFull

I can confirm this with v78.4.2

  • Connection is to an IMAP account
  • Settings are set to download all messages (no size limit)

Behaviour is only seen when attempting to use getFull immediately as the message arrives:

browser.messages.onNewMailReceived.addListener((folder, messages) => {
    messages.messages.forEach(msg => {
        browser.messages.getFull(msg.id).then(res => console.log(res)).catch(err => console.log(err));
    });
});

If the message is later retrieved it works.

Latest Daily 88.0a1 (2021-03-12) includes a change regarding getFull() and attachments (related to the new listAttachments() method). That change probably also fixes this issue. Could you confirm?

Got this change from 88.0a1 (2021-03-12) backported?

With Thunderbird 68.12.1 and 78.8.1 I don't see this issue anymore.

Got this change from 88.0a1 (2021-03-12) backported?

No, not yet. But if the issue seems gone, I close this. When it pops up again, please reopen or create a new bug. If possible, a detailed steps-to-reproduce and maybe even a small add-on which triggers the error would be very helpful.

Status: UNCONFIRMED → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.