kewisch / quickmove-extension

Quick Folder Move Add-on for Thunderbird
87 stars 26 forks source link

not working since update to 128.0.1 #165

Closed gm-333 closed 2 months ago

gm-333 commented 3 months ago

Hi

TB updated and ince then Schnell verschieben is not working. The dropdown appears and I can choose the folder to move the mail to, but when I confirm with Enter, the little cycle just keeps spinning and the message stays, where it's at.

Thanks

hkclark commented 3 months ago

I'm getting the same.

Olghn commented 3 months ago

Me too - and Thunderbird uses cpu while the 'Quick Move' button has the spinning symbol.

liar666 commented 3 months ago

Same problem here. Upgrading to LinuxMint 22 leads to installing ThB 128.0.1esr (64-bit).

joostvdl commented 3 months ago

Same here

IGZmanuelMartinVivaldi commented 3 months ago

[Thunderbird 128.0.1esr on Windows 11] In my computer works if I select only 1 email, but if you select multiple emails I get the blue spinning wheel Not confirmed: but if you select any email during the spinning wheel, it moves this email to the selected folder (this is a nasty bug because you usually click on different emails)

tessus commented 3 months ago

Looks like if you select only 1 email it works

Not for me. Moving does not work (1 or multiple emails), neither does the Recent folders view. I am on macOS with 128.0.1esr (64-bit).

hkclark commented 3 months ago

I'm getting the same results as @tessus... IOW, I haven't been able to get it to move or copy anything no matter what I try. I'm Win11 with 128.0.1esr.

joostvdl commented 3 months ago

Looks like if you select only 1 email it works

Not for me. Moving does not work (1 or multiple emails), neither does the Recent folders view. I am on macOS with 128.0.1esr (64-bit).

Same here. MacOs. not even working on 1 email.

kewisch commented 3 months ago

Hmm I've tried to reproduce this but unfortunately haven't been successful. I've tried with Thunderbird 128.0.1esr and Quickmove 2.9.0. Do any of you get errors in the error console? Can you confirm you are using version 2.9.0? Do you have a screenshot of what is failing?

kewisch commented 3 months ago

164 suggests this might be happening with multiple messages. Does it work on a single message?

hkclark commented 3 months ago

164 suggests this might be happening with multiple messages. Does it work on a single message?

@kewisch Thank you for looking at it. I have the issue with a single message. I just tried moving a single messages (TB 128.0.1esr, Quickmove 2.9.0 on Win 11) and the only entry I got in the console was:

Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved
popup.js:162
    unload moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:162
tessus commented 3 months ago

Same here, see https://github.com/kewisch/quickmove-extension/issues/165#issuecomment-2265127846

Same error message as hlclark.

kewisch commented 3 months ago

Can you try this one? quick_folder_move-2.9.1.zip

tessus commented 3 months ago

Can you try this one? quick_folder_move-2.9.1.zip

The Recent folders view still does not work. I am using All folders as a workaround.

Moving 1 and multiple messages does work with 2.9.1. But the error message in the console is still there (is logged every time the popup is invoked):

Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved
[popup.js:162](moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js)
    unload moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:162
hkclark commented 3 months ago

Can you try this one? quick_folder_move-2.9.1.zip

@kewisch Working for me! I can even use recent folders now. I'll keep playing with it but so far everything seems great with 2.9.1. This is a life saver. Thank you again!

kewisch commented 3 months ago

The error message is a red herring. There is a runtime message I send to the background script on popup unload, which obviously doesn't find its way back, and doesn't have to. I have no way to suppress that message. I can remove the code in the next Thunderbird ESR as it isn't needed past Thunderbird 125.

@tessus What issues are you seeing in the recent folders view. Do the folders not appear, does the moving not work? I've tried all views and it seems to work for me.

tessus commented 3 months ago
image image
kewisch commented 3 months ago

I tried to replicate exactly with those settings and it works for me. But something strange is happening, I undid the changes I made in 2.9.1 and it still works now. So I'm not sure what exactly triggers the bug.

tessus commented 3 months ago

I restarted TB a few times, deactivated and activated the add-on several times, changed the number of recent folders to show, but for some reason the popup is always empty.

I can only say it worked with the previous version of TB (before 128).

kewisch commented 3 months ago

Ok forget what I said, I undid it wrong :D 2.9.1 works as expected on my machine (tm). I can try a debug version that has a bunch of console messages. If you have used the debugger before or would be willing to try it you could step through and see where it bails out.

kewisch commented 3 months ago

I filed https://bugzilla.mozilla.org/show_bug.cgi?id=1911913 to fix one of the underlying issues.

tessus commented 3 months ago

I haven't used the TB debugger before. I am not a JS person. But I am willing to try to get to the bottom of this. Although I am heading to bed pretty soon. So I guess I will work on this tomorrow.

Please let me know what you need me to do. I hope the debugging info does not list all my folder names and other sensitive info. In such a case I have to create a new account and a new email user. Not an issue, since I use my own mail server. However, I think the add-on also lists folders from other accounts. Hmm, I will have to figure something out.

kewisch commented 3 months ago

Here is roughly what you should do. I have it installed as a temporary add-on from source, but it should work with an installed xpi as wlel.

1) Go to Tools > Developer Tools > Debug Add-ons 2) Find the add-on, click inspect. 3) Click three dots on the right, disable popup auto-hide 4) Open the popup 5) Navigate to popup.js in the debugger, set breakpoint in load by clicking on the line number 6) Close and open the popup again 7) Now step through the code with the icons next to the triangle "play" icon.

Then figure out when it stops working. If it magically jumps to the end of the function you might have hit an exception that is swallowed. You don't have to share any screenshots and I don't think it will show your accounts unless you inspect variables that contain account info.

schaum194 commented 3 months ago

I find this with 2.9.1 in the error console, whenever the form remains empty (not happening every time):

grafik

Does that help?

siffegh commented 3 months ago

I tried debug and immediately got this error when choosing a folder to Goto:

Uncaught (in promise) Error: Invalid mail tab ID: 3 undefined load moz-extension://d245d113-53d9-488f-a31f-bb22dcd3e6e4/popup/popup.js:122 AsyncFunctionThrow self-hosted:808 (Async: async) dispatchSelect moz-extension://d245d113-53d9-488f-a31f-bb22dcd3e6e4/popup/baseItemList.js:354 itemListClick moz-extension://d245d113-53d9-488f-a31f-bb22dcd3e6e4/popup/baseItemList.js:346 (Async: EventListener.handleEvent) connectedCallback moz-extension://d245d113-53d9-488f-a31f-bb22dcd3e6e4/popup/baseItemList.js:229

moz-extension://d245d113-53d9-488f-a31f-bb22dcd3e6e4/popup/folderList.js:148
jpyllman commented 3 months ago

Just some feedback. 2.9.0 does not work for me. But the 2.9.1 zip works. At least for my settings and workflow.

tessus commented 3 months ago

Sorry that it took so long. I was coming down with something and thus I stayed in bed most of the time.

Here is an error that was logged in the debugger:

Uncaught (in promise) TypeError: accountMap[folder.accountId] is undefined
    fromList moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/common/foldernode.js:58
    load moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:101
    async* moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:194
[foldernode.js:58:24](moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/common/foldernode.js)
    fromList moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/common/foldernode.js:58
    load moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:101
    InterpretGeneratorResume self-hosted:1417
    AsyncFunctionNext self-hosted:804
    (Async: async)
    <anonymous> moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:194

and this one started to show up after the first debugging session. It shows every time the popup is invoked:

Uncaught (in promise) Error: An unexpected error occurred
    <anonymous> moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/background.js:139
undefined:139:20
    load moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js line 139 > srcScript:37
    AsyncFunctionThrow self-hosted:808
    (Async: async)
    enter resource://devtools/server/actors/utils/event-loop.js:82
    _pauseAndRespond resource://devtools/server/actors/thread.js:981
    pauseAndRespond resource://devtools/server/actors/thread.js:1174
    _makeOnStep resource://devtools/server/actors/thread.js:1109
    <anonymous> moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/background.js:139
    apply self-hosted:2289
    applySafeWithoutClone resource://gre/modules/ExtensionCommon.sys.mjs:675
    fire resource://gre/modules/ExtensionChild.sys.mjs:825
    withHandlingUserInput resource://gre/modules/ExtensionCommon.sys.mjs:110
    recvRunListener resource://gre/modules/ExtensionChild.sys.mjs:828
    _recv resource://gre/modules/ConduitsChild.sys.mjs:90
    receiveMessage resource://gre/modules/ConduitsChild.sys.mjs:201
hkclark commented 3 months ago

So strange... the v2.9.1 that @kewisch kindly provided has been working perfectly for me until a few minutes ago. Now when I open Quick Folder Move I get the empty screen (no folders listed) that others have reported. If I switch the settings to show Default Folders -> All Folders it works. But if I switch it back to Default Folders -> Recent folders I get the blank screen again.

It looks like I'm getting the same exception as @tessus:

Uncaught (in promise) TypeError: accountMap[folder.accountId] is undefined
    fromList moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/common/foldernode.js:58
    load moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:101
    async* moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:194
foldernode.js:58:24
    fromList moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/common/foldernode.js:58
    load moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:101
    InterpretGeneratorResume self-hosted:1417
    AsyncFunctionNext self-hosted:804
    (Async: async)
    <anonymous> moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:194
Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved
popup.js:162
    unload moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:162

Please let me know if I can do anything else to assist/troubleshoot on this end. Thanks for the great app!

kewisch commented 3 months ago

That is a bit surprising, I grab all the accounts, and each folder should have an account id. Here is a version that adds some logging for that case and should also gloss over the missing account id. quick_folder_move-2.9.2.zip

hkclark commented 3 months ago

That is a bit surprising, I grab all the accounts, and each folder should have an account id. Here is a version that adds some logging for that case and should also gloss over the missing account id. quick_folder_move-2.9.2.zip

Strange... so I upgraded to v2.9.2 and now "Recent Folders" in settings works. When you say 2.9.2 has extra logging, maybe I'm doing something wrong because I'm only getting one message when I use Quick Folder Move to move an email:

Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved
popup.js:162
    unload moz-extension://0ac9dd00-52d9-4364-97ef-3cd71a01314c/popup/popup.js:162

And I think I might have seen where you said that's not relevant.

Here is what I'm doing to capture the above message: I'm pressing Ctrl+Shift+I to open the Dev Tools, accepting the connection in TBird to allow the tools to connect. Then I go to the Console tab and clear anything that's there. I have everything selected in the upper right (Errors, Warnings, Logs, Info, Debug, CSS, XHR, & Requests) and then I move an email using Quick FOlder Move and there is just the one message.

kewisch commented 3 months ago

Yes, the unload RuntimeMessage error appears here, all that it does is make sure the message pane is focused again: https://github.com/kewisch/quickmove-extension/blob/d23946df7917d13f2689d7b2af4ddd1e38d94e4a/src/popup/popup.js#L162 . Since that is the last thing that happens before the window closes, that error won't do anything bad.

The extra logging in 2.9.2 is simply to catch the TypeError: accountMap[folder.accountId] is undefined error, where it will tell you the accountMap and folder info. You will have to wait until it stops working again and check by the console once in a while to see if/when that warning appears.

tessus commented 3 months ago

Yep, with 2.9.2 the recent folders view works. I hope it stays that way. What could be responsible for it to stop working? Somehow this makes no sense. If it were intermittent, one could suspect a race condition. Anyway, should it stop working, I'll post the console output.

Thanks for 2.9.2. I am happy that the recent folders view works now.

kewisch commented 2 months ago

quick_folder_move-2.9.2.zip Please use this 2.9.2 instead if you are interested in debugging this. Use the one before if you just want it to work and are ok with the one or other folder missing.

The new version fails hard when the error occurs, because it is intermittent. This way you know when it fails and don't need to look at the console each time. It also improves how the debug message is posted, the version before was not helpful at all.

I suspect it has to do with which folders are recent. Try making folders from different accounts recent, maybe something like an rss account will fail?

tessus commented 2 months ago

Ha, with this version it stopped working again.

You are correct, it seems to error at an RSS account. I do have a few RSS feeds in the Feeds account/folder. I don't know why this one has an issue or if it was the the first one I creaated and thus is the first that is accessed by your add-on.

Error: Can't find the actor ID for objects-manager from root or target actor's form. types.js:551:11
InvisibleToDebugger: TypeError {  }
event-emitter.js:257:19
    _emit resource://devtools/shared/event-emitter.js:257
    emit resource://devtools/shared/event-emitter.js:186
    emit resource://devtools/shared/event-emitter.js:330
    notifyResources resource://devtools/server/actors/targets/base-target-actor.js:95
    _setStackTrace resource://devtools/server/actors/resources/network-events-stacktraces.js:197
    observe resource://devtools/server/actors/resources/network-events-stacktraces.js:192
InvisibleToDebugger: TypeError {  }
event-emitter.js:257:19
    _emit resource://devtools/shared/event-emitter.js:257
    emit resource://devtools/shared/event-emitter.js:186
    emit resource://devtools/shared/event-emitter.js:330
    notifyResources resource://devtools/server/actors/targets/base-target-actor.js:95
    _setStackTrace resource://devtools/server/actors/resources/network-events-stacktraces.js:197
    observe resource://devtools/server/actors/resources/network-events-stacktraces.js:192
DEBUGGING could not find account Id of  
Object { id: "account7://Recent Commits to joplindev", name: "Recent Commits to joplindev", path: "/Recent Commits to joplindev", specialUse: [], isFavorite: false, isRoot: false, isTag: false, isUnified: false, isVirtual: false, accountId: "account7" }
 in accounts 
Array(6) [ {…}, {…}, {…}, {…}, {…}, {…} ]
foldernode.js:60:17
InvisibleToDebugger: TypeError {  }
event-emitter.js:257:19
    _emit resource://devtools/shared/event-emitter.js:257
    emit resource://devtools/shared/event-emitter.js:186
    emit resource://devtools/shared/event-emitter.js:330
    notifyResources resource://devtools/server/actors/targets/base-target-actor.js:95
    onConsoleAPICall resource://devtools/server/actors/resources/console-messages.js:50
    onConsoleAPILogEvent resource://devtools/server/actors/webconsole/listeners/console-api.js:113
    CS_recordEvent resource://gre/modules/ConsoleAPIStorage.sys.mjs:170
    fromList moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/common/foldernode.js:60
    load moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:101
Uncaught (in promise) TypeError: DEBUGGING
    fromList moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/common/foldernode.js:61
    load moz-extension://2e01897c-a21e-4ad6-a190-9ac06730fbee/popup/popup.js:101
foldernode.js:61:15
Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved
popup.js:162
<Provider> does not support changing `store` on the fly. It is most likely that you see this error because you updated to Redux 2.x and React Redux 2.x which no longer hot reload reducers automatically. See https://github.com/reactjs/react-redux/releases/tag/v2.0.0 for the migration instructions. react-redux.js:881:13
kewisch commented 2 months ago

There we go, that explains it. In that case it is ok if those unsupported folders don't appear. I've filed https://bugzilla.mozilla.org/show_bug.cgi?id=1912584 as well. I'm going to release this attached version. It just ignores folders it cannot find an account for. Let me know if you run into any issues.

quick_folder_move-2.9.2.zip

kewisch commented 2 months ago

Thank you everyone for the quick responses and support in finding the issue. This made it a lot less painless to identify the issue and fix it. You are the best!

hkclark commented 2 months ago

Thank you everyone for the quick responses and support in finding the issue. This made it a lot less painless to identify the issue and fix it. You are the best!

@kewisch No, thank you! We really appreciate all the hard work and responsiveness on this! I have been a Nostalgy & Nostalgy++ users for many years (I really love that most of the time it let's you file with one keystroke), but it looks like I'm switching to this since it seems much more stable. I'm very grateful for the alternative, so thank you!

tessus commented 2 months ago

Thank you everyone for the quick responses and support in finding the issue. This made it a lot less painless to identify the issue and fix it. You are the best!

Thank you for looking into this issue and fixing it so promptly. This is one of the very few add-ons I use. I never understood, why similar functionality was never added to core. But yet again, I also never understood Mozilla's decisions when it comes to dev and keeping APIs stable. I just gave up, which is why it is very nice to know someone who cares.

A big THANK YOU ❤️

schaum194 commented 2 months ago

I'd like to join the choir. This was really exceptional - Thanks a lot!