I wanted to love Thunderbird, used it for years then a bug [0] literally deleted all my emails. I regularly see updates of people understandably raging on the ticket :( It's a bug that literally deletes user data from both the server and the client without warning. It's been open and confirmed for 17 years straight. It could happen to you. How is it not top 1 priority to fix it?
I too think they should drop everything else and work on this bug. But an example of how these kinds of bugs are tricky:
I have a similar bug at my job: Sometimes browsers delete our extension's database, or otherwise corrupt it. It's been an issue for years, but no one has been able to reproduce it. It's probably a 1 in 10 million bug.
I think it's a hardware bug. My "fix" was to backup a small, but key, part of the database to a separate storage mechanism browsers let us access. When the issue arises we can now try to detect the missing data and restore part of the db.
BUT! If this is actually a hardware bug, there is a chance that this additional database write will cause this big to occur even more often, as we now have to write to storage twice as often!
> Sometimes browsers delete our extension's database ... but no one has been able to reproduce it.
Are any of the bug reporters using Vivaldi? As for some reason that browser allows (and enables by default) clearing extension storage when clearing history/cookies via Delete Browsing Data.
This is something the Stylus addon dev noted when a user was reporting the addon wasn't remembering their settings and it was because the user had unwittingly wiped the extension storage due to the browser defaults.
(I actually use Vivaldi myself but virtually never use that feature so was unaware of the behavior until reading about the bug report)
"Delete" was an over simplification. The database seems to be there, but the data isn't. Dozens of engineers over the years have tried to find a way we could have accidentally cleared the data, but not the keys.
No user that has reported it has been willing to share their database with us (chrome stores it in a standard leveldb), as it contains private information.
But good to know that about Vivaldi! I didn't know that before, thanks!
Thanks for linking that. I've tried Thunderbird a couple of times in the past and quite liked it, but that thread has put me off using it forever.
Even if the bug is fiendishly hard to track down and reproduce, you'd think there would be some additional safety checks they could add that would at least let it fail with an error message instead of actual data loss.
People would still complain about them on forums, often ones run by the company who makes the client! I'm often reading threads of issues on Apple's public support forums. Being open or closed source has nothing to do with hearing about problems.
Closed software doesn't have open bug trackers, so there's no systematic way to find out.
An acquaintance of mine were twice hit with a bug that corrupted Word documents stored on iCloud if editing on her iPad. Searching online yielded others with the same problem from more than one year ago...
I was able to find complaints fairly easily. I had them listed but HN ate my comment. Search "Missing emails" instead of "delete all emails" as the latter tends to provide instructions about how to bulk delete.
> Being open or closed source has nothing to do with hearing about problems.
Also, pay attention to observation bias and userbase bias.
If my dad faced this issue, he'd never post online. He'd call me or go to a computer repair shop. That's what your average user will do.
Open Source users tend to be a bit more tech savvy. There's that famous article about Linux gamers reporting way more bugs than average users and how it can be accidentally misinterpreted as "why develop for linux?" These frequency biases are a big part of this. Pluus, OSS tends to do better bug tracking.
> you'd think there would be some additional safety checks they could add that would at least let it fail with an error message instead of actual data loss.
My guess is that these would exist, and do.
I think you've just made an assumption about a bug that was reported 17 years ago. Assuming nothing has been done since. It looks like they can't reproduce it, *making it impossible to mark as fixed* even if it was. But I wouldn't assume nothing was done.
Also remember that Gmail, Outlook, and others are in play here. They also maintain trashed items for 30 days, making it easy to recover. As the provider, they shouldn't make it easy to mass delete things either, right? TB is just the interface, frankly, I'm not sure I know how to permanently delete emails with it. I'm not sure I can. But the interaction here should result in multiple lines of defense.
It's not just one report from 17 years ago, it's 194 comments with the most recent one from nine months ago. It doesn't seem like mitigation steps have been implemented.
Well, I do think the thundebird team should investigate and fix this. But it is almost impossible to fix a bug you can't reproduce and have no clue why it might be happening.
> But it is almost impossible to fix a bug you can't reproduce and have no clue why it might be happening.
No, not at all. It's very easy.
This bug involves taking an inappropriate action under corrupted conditions. You don't need to know how those conditions arose. All you have to do is check whether they currently obtain, and - if so - refrain from taking the inappropriate action.
For this bug, that looks like this:
1. When we're executing a "move"...
2. Before deleting the original messages...
3. Check whether the copies are identical to the originals...
4. And if not, delete the copies instead of the originals.
At this point, the bug can't occur. The "root cause" bug, where your buggy logic says that you copied a bunch of messages even though you didn't, can still occur, but it can no longer delete any messages.
So…do it. Sounds like it’d make a great case study that would get a person tons of attention and praise on HN, a real feather to put in one’s cap.
Literally nothing stopping anyone in this thread from opening a PR with this reportedly “very easy” fix that’s eluded developers for nearly two decades, and is so terrible folks swear off Thunderbird forever because I guess for email very basic rules for backing up data don’t apply (or something?) and/or Gmail and Outlook are implicitly trustworthy?
I try to never underestimate the incompetence/lack of concern people can have when it comes to addressing major product issues, but if this has been open for 17 years and is so widely known, somebody has surely looked into it and determined it’s not so easy.
I would not want my email client to be relying on such brittle and incorrect heuristics.
A better workaround would be to keep deleted emails around for some time so users have the option to restore them if the bug triggers. But this has drawbacks such as potential privacy breakage (you meant to delete mails you don't want the chance that anybody sees it) or free disk space management (your local drive is overloaded and you want to urgently free up space) or ux confusion (this is a de facto trash but Thunderbird already has such a feature)
Ultimately, what needs to be done is make the code robust, make sure there are no race conditions, etc.
A better approach might be to feed all of this into an LLM to have it figure it out. If it finds a bug and has a fix, reproducing it might be easier and a test could potentially be written.
I don’t think LLMs are the answer to everything, but this would be a good test for newer generations of LLMs as they’re developed.
Worst case- it deletes all of your emails, but that would’ve happen anyway, right? =)
Reproducing bugs is a luxury and not even close to required for analyzing and fixing issues. Even if the issue is external (hardware, antivirus, etc.), the code can be changed to be more defensive and only ever delete the original when the new data has been successfully written and verified.
The problem is you can never close the bug report if you can't reproduce. I guess, you could, as the other commenter suggests, mathematically prove that it can't happen, but otherwise you're prematurely closing it.
How do you differentiate that you solved the bug and not a similar looking bug?
> the code can be changed to be more defensive and only ever delete the original when the new data has been successfully written and verified.
But this doesn't solve the problem.
- What if it is an upstream issue? They have to be connected, since they are deleting data. Maybe it is completely a bug on their end? Doesn't matter how defensive you are if the bug was "anytime an email has 'man man' and is pulled between 00:00-00:04 everything deletes" then what can you do?
- What if the user was hacked and the hacker just deleted all the data?
- What if the user was just dumb and deleted the data themselves. Either not knowingly or were embarrassed to say anything.
- What if it is another program on the user's computer that is deleting the data because of some weird unexpected collision?
I'm sure you can think of more situations that still won't solve the problem.
How do you close the report if you can not make strong guarantees that it is resolved?
A luxury? Not even close to required? You are not afraid of words! I'm not looking forward to receive a bug report from you!
Yeah, reproducing is not theoretically mathematically necessary. In theory you could prove your code is correct with formal methods¹. Now, nobody does this because it is impractical (borderline impossible), reproducing is in practice so useful as to be almost essential:
- it lets you study how your code behave in the problematic case and identify what's causing the exact issue the user is seeing
- it lets you check that your fix does indeed address the bug
I have indeed already fixed trivial bugs without reproduction cases from a vague description of a bug because I'm intimately familiar with the code and it immediately rings a bell: the cause is immediately obvious. But that's not the usual case.
> the code can be changed to be more defensive and only ever delete the original when the new data has been successfully written and verified.
What if the code is already designed like this (and I sure do hope it is currently written like that, because that's almost common sense, if not the only sensible way of moving something) but somehow fails for some currently inexplicable reason? It smells race condition to me.
In the case of the discussed bug, users have described a reproduction case that's not 100%. But someone will need to find a 100% reproduction case. Users, or devs. It will not be optional. You can't play a guessing game, attempt to fix the code and hope for the best. You might be able to actually fix the bug, but without much confidence. Best case, you'll be able to find a reproduction case after fixing the bug (that you'll probably use as a functional test), to prove you fixed the bug for this specific case you found. You'll not be 100% sure you addressed the user's case.
A bug can hide another one, so you could find and fix a bug, but the issue is still present in the user's case. You can only be sure with their reproduction case.
But I agree that it is hard to reproduce a race condition.
¹ which in practice applies to code of trivial size (static analysis), or consists in checking a model but not the actual implementation (model checking), or does apply useful checks but is not exhaustive and has false positives / negatives (static analysis), or does apply useful exhaustive checks but only on a limited number of executions (runtime verification, and we do have functional tests that serve a similar purpose in practice - and you'll actually need the reproduction case here so you have the right execution to check), or requires you to write your code in a specific language (stuff like coq) and you cross your fingers that this specific language's implementation is itself correct. In short: not applicable here.
> it is almost impossible to fix a bug you can't reproduce
It's also impossible to mark a bug report as resolved if you can't reproduce it.
You could have fixed the bug (especially since a lot of TB was rewritten) but if you can't reproduce the bug you wouldn't know it was solved only that people stopped reporting it. This is actually a common occurrence with long standing bugs.
A very small number of users have this bug (and tbf, it's a really bad bug), and are unable to consistently reproduce it and it seems none of the developers have been able to (the seemingly random nature of the bug occurring is not helping). How is it supposed to be fixed?
You add more and more diagnostics (e.g. logging) in that area till you manage to track down the bug. Over several years this should be possible.
At that point you can either fix the bug directly or do it properly by first reproducing the bug (in a test) and then fixing it.
Said another way - If they can't reproduce it, they can't close it.
They may well have fixed it already, but without a way to reproduce it the only prudent behavior is to leave it open and wait for the next diagnostic file to be uploaded.
I'm rather surprised by the comments responding to this. A bit by the comment itself.
Why I'm surprised is... well... this is HN. We know that a bug like this is very rare, right? I mean otherwise who would ever use TB, right? But if it's rare, it's really hard to track down. There years of comments without people including system information. The reproduction steps themselves are "sometimes." It's HN, so we can assume users here program, right? How would you solve this use?
FWIW, I've used TB on Linux and OSX for years and never faced an issue like this. The only one I've faced is sometimes not being able to connect to the server and having to resend an email.
On the other hand, when using Apple Mail:
- messages routinely doesn't show me messages I can see in TB.
- Frequently sending messages from my phone doesn't go through or ends up double sending.
- Searching will pull up emails from a year ago, prioritizing them over the email I got this week and was actually looking for (e.g. searching foo@bar.com).
- I can't even tag emails!?!?
- Do filters even work? Holy cow how do people live without filters!? How do you deal with spam? How do you deal with all those noisy needless messages and newsletter type of stuff that won't let you unsubscribe or comes from domains or addresses you can't block because emails you need come from the same addresses?
- It straight up renders PDFs inline with no warning, helping spammers.
- There's no folders and everything is just all jumbled together in a mess. How does anyone find anything?
Idk, this is an annoying problem but I'd be surprised if I lost all my emails. I can recover deleted emails in Gmail and Outlook. Annoying, but recovering these (go to trash, click "restore") is far less time than what I'm saving on a weekly basis with TB.
I know these problems aren't on all platforms but TB IME has saved me a ton of time compared to using Gmail, Outlook, or Apple Mail. Hell, fucking Neomutt is a better experience than those three, which is insane. Trying to use them is like trying to use the internet without an ad blocker. How are we so bad at email?
I had email service expire on a domain and moved it to fastmail. Fastmail, obviously, did not have copies of the email I received before the move. But my phone did.
When I updated the configuration in K-9, it contacted the fastmail server, found that the mail it had locally wasn't also present there, and immediately deleted all my local copies.
That's not a "bug" in the sense of unintended behavior of the software, but it certainly seems like the software designer's goal is to hurt the user. I obviously didn't want that to happen. There is no scenario where I would want that to happen.
Email clients make some strange assumptions about what kind of actions make sense under what conditions.
I'd wager that this is marked as "by design" because it technically follows some IMAP spec. What the app does, purely on a technical level, is correct.
I've so often had debates and threads in issues where a developer entrenched in a domain has so much domain-knowledge (ie. tunnel vision) that "technically correct" or "by the spec" is the only correct way. I've been that developer in many cases too, in hindsight.
I got also bitten by this. While IMAP would allow for syncing, most MUAs don't have a local mailbox. Instead they have a cache and the offline mode means to put as much as possible in to the cache. But if you want an actual local mail storage, you will eventually have merge conflicts, because how do you deal with a message that is present locally and was on the server, but is no longer? Do you assume the user wants it deleted, or that it should be reuploaded to the server? Either way will be wrong. (Also if you reupload, it will get a new UID, so another MUA will again reupload it, i.e. you will get a copy per MUA.)
So if you want a mailbox sync tool, use a proper program for that like mbsync/isync. (But this can't cope with cross mailbox moves besides (not) propagating them.)
Yes, a spec is a technicality that, ideally, should be abstracted away completely (and alas, all abstractions are leaky somewhat).
It's another thing that got me interested in DDD. Where the user, domain, business and such define what things are called, how they operate, what events they undergo or emit etc. And not a spec, language or framework
And where e.g. "the IMAP spec" is a clear bounded domain, probably a service, an adapter or even library. Within that domain, "The Spec" dictates all the naming, conventions, logic etc, but where the border of this domain is another language. E.g. in a "MessageAdapterImap" something is called "EXPUNGE" with all the intricacies of what this means in IMAP. But in the outside it's e.g. part of a "cleanup()" interface, or whatever the domain calls it when it removes messages.
You make a good point but this is not a "strange assumption" by any stretch. You see Thunderbird has a "move" action. It allows you to move emails from a folder to another. Now somehow, this is apparently NOT implemented as:
1. Copy from source to destination
2. Verify copy has completed without issue
3. Delete from source
but... some other way? So when you try to move from a server folder to a local client folder by an innocent looking drag an drop, combine this with a poor network connection, a garbage tier legacy protocol like IMAP and decade old C++ spaghetti code, and you get this textbook 17 year old severity 1 bug that will never get fixed.
Of course, it isn't; they're relying on an unstable proxy for "copy has completed without issue" in preference to just checking whether that happened or not. Several rather angry users have pointed this out. It doesn't seem to have sunk in.
It's like a car whose engine randomly shuts down with a very low reproduction rate. Except with cars when this happened GM has recalled 30 million cars and paid billions of fines.
Emails to email client is an engine to the car. It is pointless without one and it is THE purpose of it. All the rest of functionality like fancy UI, filter, notifications, editor is meaningless if your emails were deleted without recovery. Even car without engine is more useful than email client with empty DB.
The big difference is a car with an engine that randomly shuts down is a life-and-limb safety issue. An email client that corrupts the database is extremely unlikely to cause a loss of life, even if the consequences are costly.
That said, even if the bug is impossible to isolate, it sounds like the chain of events that leads to it is known. They probably should disable the feature until someone is motivated to fix or replace the code. I'm sure that would anger a lot of people, but someone angry about the loss of a feature is probably better than someone who is angry at the loss of data. Especially given that the feature seems to be something someone would use to archive their mail.
That may be but i immediately uninstalled Thunderbird from all my devices upon seeing that its low priority and unassigned.
I wont be using any email client that can break and delete all my emails from local and the server. Why would i? It may be a lottery but it isnt one i want to play.
The fact that they see this as low priority shows theyre morons.
Who would say 'yes please' to an email client that might permanently destroy some of your most important data at random?
When i say they're morons, i mean it in terms of them not understanding the reputational and trust damage this can cause, via the thread, the low priority, lack of assignment, or word of mouth.
Far too focused on the engineering POV than the optics and trust/reputation damage. My kind of moronic, but still moronic.
It happens to me regularly. You can fix it by redownloading the message from the server using the "repair folder" feature, and I have backup, but it IS infuriating.
I have no good alternative to thunderbird, it does so much of what I want. But this bug is awful.
Note that this is why you use copy, check, then delete, instead of just "move" data, whenever it's important that the process works correctly
Even if the software doesn't have known bugs, I do it if the data is important enough and especially if I were to not have a backup (for example, because the storage provider takes care of backups and redundancy. I personally like to have another copy that I manage myself, but how many people have their IMAP emails or Spotify playlist data backed up for example? I do, but not many people I think)
I have been using TB on all operating systems with 8 or 9 users since 2006 and I never even once encountered this issue.
As a software developer fixing stuff like this is only possible if you can reproduce it or otherwise get logs, telemetry and similar things, otherwise it is pretty much just guesswork.
Granted given the severity of the consequences I would've chosen a more defensive move-strategy (e.g. one that deletes mails only once they have been copied verifiably), but that would have significant performance impacts in the 99.99% of cases where it works, so finding the real problem is preferable.
The truth is that if this happens to you regularly, that you are probably the prime person to gather more data on this. Call it giving back to Open Source software.
> As a software developer fixing stuff like this is only possible if you can reproduce it or otherwise get logs, telemetry and similar things, otherwise it is pretty much just guesswork.
As a software developer you should be able to reason about your code and work backwards from the observed result to investigate possible causes.
When a plane crashes or bridge collapses the engineers tasked with finding the cause don't just throw up their hands if they can't make it happen again.
Technical users reporting bugs like this with a mail client should endeavour to find out if they are serious about the issue. The initial reporter worked for Sun Microsystems.
Oh, wow. When I have to use Thunderbird, I never move emails. I manually copy emails to a folder and delete the emails from the old folder after that. I forgot why I have to do this. Now I know again. A lot of people here are speculating that this bug must be very rare. I maintained like 30 Thunderbird installations for other people. This bug bit me at least twice. It can't be that rare.
> On a several occasions (most recently today), Thunderbird has "lost" my mail messages that are in my inbox when I move them to a local folder. Effectively it corrupts the messages - they appear in the local folder as 1 KB messages with no subject or sender info. They are empty messages.
Apple's Mail app has had a virtually identical bug since Catalina; Michael Tsai's article on the issue currently has 636 comments:
After witnessing the bug myself, migrated to Thunderbird with Maildir enabled[1] for long-term storage; have yet to experience the issue despite a large database (>300,000 emails) and daily IMAP import to local folders.
I've been amazed over the years this has never been fixed -- it's very hard not to make jokes about the standard lifestyle of open-source programmers, that they don't consider this a priority (note: that's a joke, I consider myself an open-source programmer. I would hope that's obvious, but someone just bothered to sent me a mean anonymous message)
Indeed most of the time I already know the exact word I'm looking for; and most of the time I get non-exact hits making it so much more difficult to find the actual message.
Perhaps there could be an option to disable stemming completely from the inverted index, which would be probably easier to implement than a post-search filter (which in itself doesn't sound very complicated..).
But of course, it's open source, anyone could contribute :D.
The search in thunderbird is terrible compared to what we are used to today. Same for k9 (now thunderbird for android?).
Not only is the UX a horror, its results rely on all sorts of technicalities. I, as a software engineer, can understand that a mail has to be downloaded in entirety locally in order to have it indexed and then show up in the results. And I understand that sub-sub directories aren't really a thing in IMAP, so searching this-dir-and-everything below is hard/impossible and so on.
But mostly the search algorithms are poor. So much so, that I often rely on (rip)grep to find mails. Or in a few occasions wrote a quick bash/python horror to push all my mail into a meilisearch instance and then use this search engine to get the lists and filters that I would expect thunderbird to have.
Yes. It's open source. So "go fix it" is a proper reply. But that doesn't make a complaint about the state of the search feature invalid.
I don't know why you're getting downvoted for this. That seems like a pretty frustrating bug when generalised to other word stems. It's also pretty standard to prioritise exact matches when ordering search results so, again, frustrating.
One of my biggest bugbears with Microsoft Outlook has always been that its search function is terrible. If you can't find an email then it may as well not exist, and that's been a real problem on a regular basis during my career - particularly latterly when I was in leadership and necessarily lived in my email and calendar.
It's disappointing that Thunderbird has similar issues with such a fundamental function.
That is annoying. I wish I could advance search or better, use regex. Luckily there are plugins.
Worse though, in Apple Mail I'll search an email address because I got an email earlier in the week and the first thing it'll show me is an email I got from that person 3 years ago with the correct result a few down. I really need a better email client for my phone...
The filter/search feature in Thunderbird does not appear to have a way to search for exact matches. You want exact matches. First, identify if it can do exact matches and if so, expose to the user. Else, who wants to touch that code?
Nitpick: not all bugs have to be reproducible to be taken seriously. Defensive programming, and adding extra logging could be a mitigation to avoid future problems, or to help fixing them in the future.
Imagine you're writing trading software, you have an algo go haywire and it machine guns the whole order book, and then you refuse to put a "max order size" outside of the algo to stop it from happening again because you can't figure out why it happened in the first place.
Try telling a regulator or your boss that was your reasoning.
How many one-off band aids do you think should be applied for rare, never reproduced problems before you slap a “100% safe” label on it and ship it with the confidence of a bloated, cruft-ridden job well done?
Are you arguing in bad faith, or do you just not have any practical experience dealing with complex systems?
Even if the bug can't be reproduced, on the basis of multiple user reports the first step absolutely should be to add some assertions and logging around email deletion.
The point is not to give it a "100% safe" label, the point is to start narrowing down possible root causes. If the problem recurs again, you'll have assertions ruling out certain possible culprit code paths as well as logs displaying the values of relevant variables.
Kinda off topic, but I've been searching for good introduction and best practises for defensive programming, but never really found much. Any recommendations?
I don’t know of any real posts on it, it just ends up being kind of a “assume it’ll go wrong,” then figure out how you know something has gone wrong and track it down. Your starting point is, after an issue is reported, add a load of logs around places that seem like candidates for the flow. Over time, you get a sense of where things can break and you add that telemetry ahead of time.
I feel like this is sort of like reading a book to get better at self defense. Yeah, you'll probably pick up a few interesting things that may be of questionable use. But when you train in martial arts, you often get to go through the motions and put the moves into practice. Even then "real" fights will feel quite different and a lot of the stuff you've learned will likely fly out the window. If you've been in real fights a lot, you've begun to internalize your training and your moves become more like instinct. It's quite difficult to go from book knowledge to instinct without getting beat up a lot in between I think. The real valuable lessons come from building something that breaks and getting to fix it yourself.
This issue comes up in my role a lot, where I am often dealing with various environmental conditions and human factors, plus multiple integration points between various software and hardware systems.
The answer is that you keep working at it iteratively using a combination of logging, reporting, and defensive programming to systematically narrow down the possible causes. Sometimes you never arrive at a true root cause, but you get close enough that you can mitigate the problem and finally close the ticket out. At the end of the day, the customer/user doesn't care as long as it works.
However, what will really piss them off is telling them your hands are tied until they can reliably reproduce the issue for you. It's important they understand that you are working on it, and typically they will go out of their way to help solve the problem when they feel taken care of.
Why do you think it needs reproducible steps? It is obvious that the bug is still active, so in a way it is reproducible, just not in a systematic way.
This happens more often, for example when many services work together in an asynchronous way, and in some very rare situation, unwanted behavior occurs. To fix that, it is often easier to reason through the entire process, and to identify weak spots. It might even be a good idea to switch to a different paradigm to avoid certain bugs altogether.
For this particular bug, I would start by reading a lot, and ensurong that the bug is indeed not easily reproducible (by trying to make it reproducible of course). If that fails, I would continue to think about root causes for the bug, and possible workarounds that would work in theory. Then I would try to estimate the amount of work required, and the risk of breaking other things, and report that to those who like to decide on further actions.
And of course, as I know very little about the inner workings of ThunderBird, I would simply ask ChatGPT o3 or similar for advice. It comes up with a plan that seems reasonable.
No it doesn't. If I waited every time for obscure production issue to be reproduced in lower envs I would be fired... many times for clear and obvious incompetence.
Sometimes, you can add some additional steps, logging, change behavior in corner case a bit, either to get more understanding next time it happens or even mitigate it. Sometimes, you have plenty of tools and ways to act. In my experience, that sometimes is basically always if one cares enough.
What developers should do on such a critical and long standing issue is to offer an extension that victims can install to volunteer to track the bug. So they can click a button when things are fine to take a snapshot, and click another one when they encounter it.
If it was me running the project there's enough information in that thread to piece together an exploratory testing plan around the issue that might allow us to isolate it, and I'd set aside some time for the team to do that.
Whilst obviously not lethal, this Thunderbird bug sort of reminds me of the Therac-25 incidents in the 1980s. Very occasionally the machine would give patients massive overdoses of radiation. This bug wasn't easy to reproduce (thankfully) and turned out to be due to a race condition.
But of course, you can't find a problem if you don't investigate, and if it's a serious problem that's been documented then, as engineers, we can't just hide behind non-reproducibility as if it's some sort of magic shield. We have a responsibility to investigate and isolate the problem ourselves. If we don't do that we are effectively washing our hands of our own creations.
Not only that. Often mitigations can be placed even if the actual bug cannot be reproduced. Like many others in the thread suggested.
I've encountered several impossible to reproduced bugs in the past. And what I (or my team) would then do, is re-architecture (refactor) some pieces of software so that we could reproduce it. Like e.g. better logging, specialized layers/adapters/services, simpler logic, and -above all- better testability.
You’re assuming users affected by this bug have control over the VM running their mail server. I won’t argue that it can’t be done, but it’s probably harder than we think.
I've been using TB for personal and work since it's first day and never hit the bug. I've never known any co-workers to hit the bug.
I'm sure plenty of other software that we use every day has similar severe bugs that occur just as infrequently.
I'll keep using TB. I'll also make sure to look both ways when crossing streets and won't assume that cars are going to stop for red lights because my chance of getting hit crossing a street is more likely than getting hit by this bug.
Yikes! I recently tried Thunderbird again because I was annoyed with gmail pushing AI subscription crap in the web UI. Guess I'll take that over this bug for now.
I was a thunderbird user many years ago. Seeing the article made me want to reinstall, and then this comment instantly changed my mind. Insane bug for an email client to have…
Could they just make it not suck? Like the search system falls apart if you have more than a few thousand messages in a folder, not all that many by today's standards. The address book doesn't let you sort the addresses by most recently added, which is important if you reply to craigslist posts which use numeric forwarding addresses. So once you have more than a handful of them the are impossible to tell apart. It automatically makes new archive folders by year (2023, 2024, 2025...) which is kind of nice, except it shows them oldest first instead of newest first, so you have to scroll way down to get to the current year. The progress bar on the bottom looks like there is constantly something going on, and maybe there is, but it never finishes. Messages sometimes fall through cracks so you can't find them in any folder but you can sometimes find them with global search. And on and on. Stop adding new features or messing up the UI further until basic functionality like this works.
> Like the search system falls apart if you have more than a few thousand messages in a folder, not all that many by today's standards.
My Thunderbird installation tends a 20 year old work mailbox with tens of thousands of messages, and the search works the way I want even though I don't download the messages themselves to save some disk space.
If you are using your installation for a very long time, your local caches might have broken at some point, because Thunderbird was bad at that kind of thing, but now it's not.
For folder order, I can't tell anything about it, but 13 years of folders are just a wrist-flick distance on a 2K display, and shouldn't be much worse at an 1080p one, either. So, it might be fair criticism, but it's nitpicking.
I never experienced "lost messages" for a very long time, and my progress bar is currently sitting empty, despite that installation is handling 5 busy mailboxes.
You may need to delete some cache and local MBOX files and restart your Thunderbird, it seems.
> Like the search system falls apart if you have more than a few thousand messages in a folder
I'm in the inbox, I see an email with 'word' in the Subject in some of the most recent emails.
I type 'word' in the search box and TB finds some emails from the years ago.
It's even worse if it is 'word and some another word', in this case it doesn't even find anything.
It's like the developers... aren't dogfooding their own product?
Oh, yeah, we do now have TWO search boxes. Because that makes sense. And if you disable the topmost one, there is now 30px of wasted space you cannot reclaim. Because you definitely NEED that hamburger menu on the RIGHT side. On the desktop. On the 4k+ monitor. Riiight.
The two search boxes is bizarre. It feels like two rival programmers each wrote a half-baked search feature and rather than management telling them "Unify your two approaches", instead they said "Just throw them both in there and let the user figure out which one they want."
And if there were two driving wheels in your car, a one for turning right and an other one for turning left you would say there is no two driving wheels in your car.
A filter is different from searching. It only works on the current directory, it alters the view after it has been generated. You can also use it on a search.
Don't know about others, but I find the functionality useful and use them for different purposes. Searching is when I want to find random messages, where I don't know where or from when there are, the filter is for bulk processing and narrowing the current working set, beside the conversation level.
It is more like the steering wheel and choosing forward/reverse, sure both are for choosing the driving direction, but they operate at different levels and are used in different situations. I mean you could use the steering wheel for forward/backward if you want to. Using the gear to change the direction less than 180° is quite difficult, but not impossible.
The search is really limited by the storage backend Thunderbird is using. Would really love to see something with full text search support, like sqlite.
My workaround for Thunderbird search is to open the Outlook web client, search for what I need, find it in a fraction of a second, do what I need to do, and close the web client. Terrible "solution" but the only one that works.
Basically a cross-platform Thunderbird replacement whose sole goal is to "not suck". Full-text search is entirely client side (not via IMAP) and returns results in single-digit ms.
>Full-text search is entirely client side (not via IMAP)
Setting up server-side Xapian full-text search and disabling the crap client-side one in Thunderbird was one of the best improvements I made to my email usability. What makes your client-side search better? It's usually not speed I'm looking for, but rather precision, such as double quoted phrases (sorely missing from Thunderbird's client-side search), filtering by a mixture of things, etc.
I wish more clients had an option for server-side-only search (looking at you, iOS Mail.app) and/or had a nice UI for it (ctrl+shift+f dialog in Thunderbird is janky but gets results)
The fastmail web client is actually decent as such things go, and its search works ok. When I have trouble with Thunderbird search I sometimes log into Fastmail and use their web client.
If I see abstract elements on an app's store page or landing page, I immediately close it because I feel that not only is it wasting my time, but it also lacks the confidence to show the actual interface, which probably sucks. Similarly, games that don't show real footage also don't deserve my attention.
My thoughts exactly. I used to use Thunderbird back in the day and I would like to be able to go back to it. I can’t even remember anymore what turned me away at the time. I’m always curious to see how it’s progressing though, and screenshots of a modern UI would probably get me to download.
When I see a website advertising a product without actual screenshots, I usually assume the product is absolute garbage. But that's for commercial products normally, not free software like Thunderbird
«Manual Folder Sorting» — first, they broke 3rd party plugin for that. Next, author (not member of official Thunderbird team or employee of Mozilla) of this plugin spent more than 1 year pushing this functionality into base.
Now they highlight it as big deal in new release without mention volunteer author of this BASIC feature which should be in mail client FROM VERSION 0.0.1!
It is pity, that Google Mail is «good enough» and it killed development of good desktop e-mail clients.
Thunderbird is best what we have (Cross-platform), but still very bad, and after killing off XUL plugins cannot be easily modified.
They exists for 21 year and now announce manual folder sorting! There is no support for Sieve (3rd party plugin? Dead after removing XUL)! There is no way to store folder settings as IMAP properties, and if I have two installations (on laptop and desktop, for example) I need repeat same setting or folders again and again — including selection of identity per-folder (again, not native functionality but 3rd party plugin, thanks, it is alive now!). No true message templates (per-folder, per-action, per-identity), only lousy "signature", broken in-line quoting in plain text messages, etc, etc, etc.
> It is pity, that Google Mail is «good enough» and it killed development of good desktop e-mail clients.
You have to remember that when Gmail was launched it was considerably better than most desktop mail clients at the time.
It had auto-complete for who you wanted to email (prior you had to manually type their email address).
It came with an eye watering amount of storage (1 GB).
Worked from any computer (when POP was common and downloaded the emails locally to that desktop computer).
And more.
So it wasn’t so much that Gmail is “good enough”. It was more like desktop clients saw how much better Gmail was and didn’t think they could compete - also given that Google provided the hosting as well which allowed for tighter integration - something a desktop app alone could ever do.
Note: I'm not saying I think Gmail is a great experience. For web, I personally really enjoy Fastmail and for desktop - I surprisingly have grown to like Outlook. What I am saying is that when Gmail was launched, it took a lot of wind out of the sails of desktop mail app creators.
> You have to remember that when Gmail was launched it was considerably better than most desktop mail clients at the time.
It was not better for me than old FIDONet GoldEd 2.8x! It didn't (and doesn't) support proper threads, it supports effectively only top-quoting, it didn't (and doesn't) understand mailing lists in any way, it didn't support forward-as-attachment in both ways (now it supports it, though). Its filtering is still much more cumbersome than even Thunderbird one, not to say Sieve, and can be done only from web, but not from Android client. It doesn't support any crypto natively, both PGP or S/MIME.
Their are all features which I'm using daily (maybe, crypto is not daily, but still use sometimes).
Only good thing is labels, which is more flexible than tree folder structure. And, yes, full text search, obviously, as it is Google product.
As far as I remember, Thunderbird was not much worse than it is now, and it is supports most of this (though, quoting was and still is very weak, problem solved in FIDONet in 1990s!).
To be honest, I don't remember what was situation with address book and address autocompletion from it in Thundrbird before GMail, maybe there was none (but I will surprised, as, again, it worked in old TUI-based FIDONet client for DOS and OS/2), but this feature is trivial to implement in desktop app, and it could use LDAP or another centralized directory, not only addresses collected from your mail.
It was better than any web-mail, for sure, but better than desktop client? It is debatable.
1GB of storage is question of hosting, not client.
Update: Add to it modern gmail hate to self-hosting mail domains, and I could say that Google kills email as federated, free, non-vendor-dependent system. It is not surprise to me, of course, but still.
How do you do Gmail style threading view in thunderbird ? They changed the game wrt email display and 20 years later I still don’t know how to get thunderbird to do it.
Gmail:
- see all email bodies for a single conversation in one long list , like a DM in a messenger, with smart hiding of quoted text so you only see new content
- in your inbox / archive view, mix both sent and incoming emails in such conversations, so I don’t have to toggle between Sent and INBOX or Archive
I would be happy with just one of these two but I genuinely can’t hack it.
I would personally go as far as to say: any email client which doesn’t do this, is wrong.
> How do you do Gmail style threading view in thunderbird ? They changed the game wrt email display and 20 years later I still don’t know how to get thunderbird to do it.
I hate it. It hides texts, and I lost answers in this view more often than I want to admit. If it is not ping-pong conversation (I wrote you, you answer, I answer at your last answer, etc), but discussion between 3+ people where different people answer to different messages, gmail view is total mess when you cannot understand who answer to what. As I said, it doesn't support threads, only messenger-like conversations.
Any e-mail client which doesn't support tree view for threads is wrong.
You can put answers to same folder that message your answer in (any?) sane e-mail client, Thunderbird is not exclusion.
Update:
> smart hiding of quoted text so you only see new content
I've missed text hidden by mistake due to some formatting quirks more than once. It is solution in search of problem: proper quoting doesn't need any magic.
> How do you do Gmail style threading view in thunderbird ?
I used an extension once but it broke at some point.
> - see all email bodies for a single conversation in one long list , like a DM in a messenger, with smart hiding of quoted text so you only see new content
Or not so smart hiding of "repeated" content like say an image with a different URL but hey the rest of the <img> tag is the same so close enough for Gmail.
You have to remember that when Gmail was launched it was considerably better than most desktop mail clients at the time.
There was never a time when GMail was better than plain old Outlook, but this is coming from someone to whom IMAP has always seemed like a really terrible solution in search of a nonexistent problem. My email database is important to me, and worth managing locally, as this thread more than adequately demonstrates.
Boss at the time: "You should quit using that old POP3 crap, and switch to IMAP. It's awesome." Boss a half-dozen times over the next few years: "Hey, can you forward me a copy of that email we got from XYZ a couple of years ago?"
If you're going to keep them all locally anyway, what's the point of IMAP?
(Admittedly my judgement was formed at a time when one user, one device was the rule. I suppose if mobile access to email is important, there's a good argument for keeping the data server-side. I solve that problem with VNC.)
> It is pity, that Google Mail is «good enough» and it killed development of good desktop e-mail clients.
Microsoft Outlook has a very large market share in the business world. There is an old and a new GUI design version, and you can run the app, or use it online.
I don't like the presentation of the individual emails especially, I find the thread-view hard to understand, especially on mobile, but it works. Personally, I would have preferred the older folder presentation designs of 20+ years ago, for me this app is trying to be too clever - in both the old and the new GUI version. However, it is just so very widespread. I have to use it because everybody else in the company uses it.
They support a huge amount of scenarios and edge cases that many businesses now depend on, combined with all the Microsoft server side and infrastructure stuff they have of which the emails are just a very small part now.
I hadn't really used Gmail or Google products much, until I started at my last job, which was balls deep in the ecosystem. I loathed Gmail. One of the worst email "clients" I've used. After toggling a load of stuff in its settings it was usable, but dealing with email was a low point of my work day.
New job is Microsoft based, so Outlook, and I haven't used that in 20 years, so it will be interesting to see how enshittified it has become. I will have to run Windows on my work pc, which I'm not looking forward to.
I’ve been using Thunderbird more and more over the past few months. I’m glad it’s finally getting some decent attention. I’m especially curious about the new account management in 140. I couldn’t add my iCloud calendar easily before, hope this rectifies it.
If you haven’t given Thunderbird a shot yet, you should.
I've been using a fork of Thunderbird called Betterbird (https://www.betterbird.eu/) on Linux, mostly because I want to be able to minimize it to a systray icon. I know there are extensions like systray-x and birdtray, but I was having issues with these on Wayland. I wonder if this new version of Thunderbird finally added systray support on Linux/Wayland.
That's... not a bad thing, though? Terry was an extremely competent engineer and programmer who designed his software to be as user-friendly, well-documented, and performant as possible.
I have conversed with Jörg, and he is blunt and fair in a good way (code itself is emotionless, after all). And, of course, he is highly competent. I have also conversed with several Mozilla teams, including Thunderbird, and the experiences were universally horrible, as in they lacked core competency. Naturally, YMMV.
There is no mention of sync functionality. I regularly use 3 different PCs and I cannot sync settings easily. It means I've give up using Thunderbird on all but one of the PCs.
They've also made the usability worse in recent versions and are copying the insanely annoying context menus in Windows 11, which cannot be reverted.
You need to export the profile and re-import on each machine. If you make any changes on one machine you want to see it reflected on the others.
The profile import is a bit iffy and there was some odd issues with downloading profiles over 2GB IIRC, the last time I did it (which was over 2 years ago).
There seems to be a lot of focus on features that IMO that I couldn't care less about and some outright stupid UI decisions like the context menus being changed after 20 years for god knows what reasons.
The result was that I just gave up and use Thunderbird on one machine and web-mail on all the others. I suspect I will just drop Thunderbird as a result.
I guess they mean that they want their accounts to be synced (setup is annoying tbh), but also things like signatures and so on.
I normally just manage it myself and I'm extremely happy to do so, as I consider it like my dotfiles, but I understand where the parent is coming from - settings sync is becoming common. (Chrome is a good example).
Also gave up Thunderbird years ago because of the same reason. Just wanted something stable and chose Spark. Works on every device, not a problem for years.
> While we can’t change the universe, you can now get the latest Thunderbird features as they land, instead of once a year. Switch to Thunderbird Release and enjoy monthly updates with the same dependable stability.
Does this mean anything or is it some sort of marketing gobbledygook? We can now get features faster by using the latest release rather than the ESR – but surely non-ESR releases have always been available, so this was always the case, not only now suddenly?
Also, the "dependable stability" we enjoy with the ESR release comes precisely from the software not constantly changing underneath us, i.e. from not getting new features every month.
I have not used Thunderbird in 15 years, but I'm desperate for a decent email client. I've used Spark, Mailspring, Airmail...but I keep coming back to the MacOS Mail app. Any active users of Thunderbird who chose it over the default Mac mail client? Does it have a unified inbox for all your accounts? Dark mode looks neat, at least.
That's good to know. The Mail app shortcut keys don't make a lick of sense, but I don't mind that as much as the inability to zoom in on images in a message. No pinch and zoom on an image is diabolical in the MacOS ecosystem. Do you miss anything about Mail now that you're Thunderbird full-time? Anything you prefer in Thunderbird over Mail?
Is Oauth accounts with an authenticator working yet? I desperately want to use it at work, but we have O365 with Okta and Yubikeys in front of it, and Thunderbird can handle the Okta but won't prompt for a PIN for the Yubikeys.
The only feature I am missing in Thunderbird is “group by sender, sort groups by latest receive date in group”. I don’t remember what client I used that had this (outlook, perhaps?) but for me it works so much better than other arrangements:
You still see all the latest correspondence, but also immediately all previous correspondence from the same sender (if you expand the group) whether or not it’s a reply thread.
I have used Thunderbird in the past, but ultimately gave up.
I am currently on google for my private email, and for other reasons tied into MS / Office365 anyway for my business so decided after having my business email at my internet provider initially, it all was just not worth the hassle.
95% of my business dealings is with companies that are on office 365, and especially the calendaring and RSVP'ing just kind of works in outlook.
I am still keeping an eye out and hope to be able to move to some solution which unifies it all, preferably on a nice open standards, open source solution for email, calendaring, and contacts.. but the fact is that customers pay my bills, and I grew tired of all the account issues, syncing issues etc with trying to have it all in Thunderbird.
I find it a sad state of affairs though, the amount of engineering time, energy, and money spent on building semi-walled gardens and at the same time building ladders to climb those same walls, all while never achieving an actually smooth experience between my various email accounts, my calendars, on my laptop and phone alike.
No thanks. We're still sticking with version 102, the last release before the ruinous "Supernova" redesign which nobody asked for, when it became apparent the project was being abused by "UX" kiddies looking to bloat their Github resumes. We're just thankful that some wiser developer had previously added the "allow-downgrade" option.
(The download link is easily found there, as well as git repository and forum links.)
It's based on UXP (the Unified XUL Platform) and is thus related to the Pale Moon browser (which doesn't bother me). I've been using it on Linux as a way to have an "older Thunderbird" look and feel, e.g., I have real scrollbars, and the "Send" button didn't mysteriously vanish from the Compose window with no way to get it back upon some "from the ground up redesign" upgrade.
Whenever Thunderbird makes its way to the front page of Hacker News, I always re-download it and hope that I can use it.
Every time I've ever tried it (spanning around 30 installs over the last 15 years), I've uninstalled within a week to a month, due to sluggish UI, phantom unread emails, crashes, and text formatting issues.
I do it because I believe that one day Thunderbird could be good. Today could be the day - I've installed it, added my accounts, and it looks like the developers have made some significant improvements. I'm not talking about fancy new features, instead I'm talking about the small nitpicky problems I've had whenever I've tried to use it.
For example, this time I installed, I didn't have to go into a hidden settings menu (here be dragons) to make new emails default to the top of lists. My replies are now made above the original message. Fastmail doesn't throw a wobbly when trying to add email, calendar and contacts with the same password.
Maybe today is the last time I install Thunderbird?
I don't have any of those issues, besides perhaps crashes but the last one must be two years ago (I remember because we're always watching for exploits coming in). Maybe nobody else has these issues you mention either. If you want them to be fixed by the next time you install, have you considered reporting the issue and seeing if there is a volunteer is willing to fix it for you?
> Don’t like the order for your custom folders? Just click and drag to arrange them exactly how you want.
At last. Thank you.
I've been using an add on for that for a long time. It stopped working about one year ago because of some change in TB. I managed to survive but I really look forward to the update to 140.
Thunderbird is still the only calendar software I'm aware of with a "Multiweek" view instead of the awful "Month" view all others provide. The only calendar to have caught up to 20th century technology (Apple almost gets it, but not quite).
The person in question has a relatively rare medical condition, for most people dark mode reduces readability as a darker screen leads to more pupil dilation which causes halation. (which you can test out yourself if you stare at dark mode text and then look at a bright surface, you'll likely literally see a halo of the text).
This is worse in people with astigmatism, which is about 35-50% of the population. Dark mode defaults, as on that website, need to die. Most of the time they're used because people use their digital devices like goblins in a cave and don't light their rooms properly, or configure their brightness settings correctly.
Surely this can't be that universal, right? I will have to do this test at some point. I have astigmatism but I find the default bright version of websites frequently painful to look at. I have no clue why but I need the dark versions.
My strategy has been to use light mode all around but I have f.lux set to about 20% strength all day long. I also have my monitors dimmed a fair amount unless I want to display HDR. It also helps to have a bias light behind your screens if you can.
My goal was to get rid of the 2pm eye twitch and I've mostly got it.
If websites are generally too bright, you can save energy as part of increasing comfort by configuring your display to put out fewer nits (reduce its brightness setting). Usually people have the opposite problem, especially if there's direct sunlight on or near the screen, so that's probably what the factory default optimises for
Technically it’s not really hypocritical because the author never claimed that a lack of light mode is an accessibility problem.
I think it’s also notable that websites being accessible isn’t really about being tied to a specific theme, it’s about being compatible with accessibility tooling and standards (screen readers as an example). There are plenty of CSS manipulation tools that can make a website look whatever way you want.
Then all that'd apply to sites not having a dark theme, undercutting the author's point because he could just use stylus to.make his own dark theme for sites.
First time I hear someone describe nausea from dark mode. Quickly looked astigmatism up on Wikipedia - isn't that something glasses fully correct? I think I've got this as well, but not sure, I've just always had glasses and take whatever they measure to be the best possible lens
(Of course I critically evaluate the measurement, like one time I actually couldn't read faraway text with what they were proposing whereas I could with my old glasses. But I don't know the exact values or terms for the different defects, I think my eyes have at least three different issues including something about rotation as astigmatism apparently means)
I guess what I'm asking is why you don't have glasses. Are they too expensive in your area, or the defect only very minor so it doesn't impede safety when driving even on highways? (Then I'm surprised you get nauseous though, since I don't when I read anything without glasses, regardless of dark or light mode.) Or if you do have glasses, is this still an issue while wearing them? If so, any idea why?
I have glasses. They greatly ameliorate the issue, but not completely. My prescription is a single number which I don’t believe has the necessary granularity (I think, intervals of 0.25) to express the exact prescription I need. I also suspect that astigmatism is a deformation of parts of the eye that cannot be expressed with a single number. It’s possible I should have gone to an ophthalmologist instead of an optician in a mall but that’s what I did.
Also I generally don’t wear the glasses unless I’m working (with a computer of course) or driving. I also have myopia, but both my astigmatism and my myopia are mild. The problem is much more severe when it’s dark, so I always wear my glasses when it’s dark and I very rarely wear them during the day. I must always wear them if I intend to use the computer for a long time, though. Especially if I’m staring at a terminal or whatever else with white letters on a black background. But I don’t need them to read (black on white, not too far away) or to use my mobile (always closer to my face than my monitor).
Judging the distance/speed of other cars during the night without glasses is simply impossible despite my mild prescription.
I tried to add a new mail account to Thunderbird after upgrading to version 140. Unfortunately, it shows an error message after merely asking for my name and my email address and then hangs in an endless animation.
Since some months somehow the windows are weirdly aligned inside Thunderbird, like the attachment bar is cut off at the bottom.
I might be connected to my Awesome WM but I haven't changed anything on this side.
I love Thunderbird, but the compose message window is just shit. It allows to sslect text type like body, paragraph and so forth - but it always resets to paragraph for me, which leads to weird spacing between lines.
So we have "OS-native notifications" now. Does that mean we finally get a tray icon? Or do I still need to keep Thunderbird sitting in the taskbar for that?
If not, I guess I'll be keeping birdtray installed for now.
I used TB for a decade or more, then in the end quit, because it was bloating too much. It was a browser doing email, not an email client.
I then used Claws for a while, but came to really dislike it - lots of small UI issues.
Then I wrote my own email client in Python, Postgres for store, Apache/HTML front-end. That's been fantastic. Python does all the heavy lifting, you need to design a decent database.
Now I add features as I need them - few days I added the ability to specify how many times an email should be sent, when you need to spam the recipient for some reason (say, a company which is spamming you and is not responding in a reasonable or timely manner to GDPR requests).
The basic client design I've not seen elsewhere - but I've not used many clients so it may very well exist. There's a single inbox of email, and you define sets, and a set defines what is shown. So you don't move emails around between folders, you define what's shown, and you can have multiple sets concurrently - so for example, "inbound", "last 24 hours".
There are also a bunch of other small features which I've had in time for a long time but have never seen. For example, the from/to addresses have the localpart and domain separately, so you can order by domain. There's immediate in-page filtering, too, for each column, so you can just enter a few letters of what you know is the origin domain and bingo, there you go.
Apple Mail. It covers the bases, doesn’t try to cram too much into a single app, and doesn’t lean into badly aging UI trends.
I’ve tried Thunderbird a few times over the years (including post-redesign) and it’s always felt clunky and kinda awkward. Firefox somewhat outgrew that but Thunderbird never did.
If I were to use something else, it’d probably be MailMate which is a lot like Apple Mail but with even fewer frills and more optimization.
[0] https://bugzilla.mozilla.org/show_bug.cgi?id=462156