randomly empty main window on startup -- JavaScript error: chrome://messenger/content/about3Pane.js, line 4254: TypeError: this.treeTable is null
Categories
(Thunderbird :: Mail Window Front End, defect)
Tracking
(Not tracked)
People
(Reporter: stan_12, Unassigned, NeedInfo)
Details
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0
Steps to reproduce:
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Thunderbird/128.6.0
Start Thunderbird without any parameters or add-ons.
This issue is not update-related and has existed since at least June 2024.
Reinstalling Thunderbird and setting up a new profile does not resolve the issue.
Restarting Thunderbird multiple times eventually restores the correct display until the next startup.
Actual results:
On some startups, the main window and message preview pane remain empty, regardless of user interaction.
However, the folder tree on the left is always visible, clickable, and correctly shows unread message counts when a new mail is arriving.
Error message in console (right after startup):
'JavaScript error: chrome://messenger/content/about3Pane.js, line 4254: TypeError: this.treeTable is null'
Assumption:
Whenever the error occurs, the threadTree element lacks the class tree-view-scrollable-container.
This class appears a few milliseconds after the error is raised, suggesting a timing issue.
Possible cause: Large mailboxes (e.g., >6000 messages) slowing down DOM updates.
Workaround:
In about3Pane.js in line 4254:
Original code:
threadTree = document.getElementById("threadTree");
this.treeTable = threadTree.table;
New code (fix):
threadTree = document.getElementById("threadTree");
while (!threadTree.classList.contains("tree-view-scrollable-container")) {
await new Promise(resolve => setTimeout(resolve, 50));
}
this.treeTable = threadTree.table;
Outcome:
This workaround eliminates the issue permanently.
It does not significantly slow down the startup process.
Expected results:
The main window should correctly display the contents of any selected folder or mailbox in the left sidebar.
Updated•9 days ago
|
Comment 1•9 days ago
|
||
Curious. I wouldn't have thought that possible.
If you add await customElements.whenDefined("tree-view");
to this group (and take away your other work-around), does that help?
(In reply to Geoff Lankow (:darktrojan) from comment #1)
Curious. I wouldn't have thought that possible.
If you add
await customElements.whenDefined("tree-view");
to this group (and take away your other work-around), does that help?
Thank you for your reply. I just tried your solution and unfortunately the problem reappeared immediately. I had to restart 2 times before I could see the main window. I switched back to my workaround and everything worked again. I also added a logprint to find out how many times the loop is iterating when the timing problem occurs.... just 1 iteration.
Description
•