Most bugs are quite boring. Usually, the user does something the developer hasn't anticipated. The developer adds a check. Bug fixed. Only a low number of bugs are more interesting.

A user complained that sorting didn't work correctly. He clicked on a field in the header of the email list and sorting would work. After clicking again sorting would not work.

I was totally astonished and did a screensharing session with the user. We also had a look at his data. Everything looked fine. Sorting is something that I do every day after all.

Then another user complained about the same problem. He noticed the important detail: sorting didn't work in his large mailbox with 55k emails. With this information I was able to reproduce the problem.

Sorting in a small mailbox works fine. Here are 2 screenshots of a small mailbox sorted ascending and descending:

Mailbox sort 1

Mailbox sort 2

Now compare this to sorting ascending and descending in a large mailbox with 150k emails:

Large mailbox sort 1

Large mailbox sort 2

Sorting ascending and descending gives as first date something in 2001.

I was "WTF".

I can look at the raw data of what is happening in Mail Archiver with Valentina Studio. There everything looked okay. Again the mailbox is sorted ascending and descending:

Mailbox sort in Valentina 1

For a modern interface to look smooth a lot is going on in the background. At first I thought there was a problem that the list of emails is updating too early. But I found nothing.

After a day I had the critical idea to look at the raw data of what happens in the query itself. The list of emails has access to the query and loads only the data on-demand. I started logging the data and there it was: it didn't matter if the emails were sorted ascending or descending because I always got the same data. I had found a bug in the database itself.

I sent a problem description and a huge database to the database guys. Yesterday I got a new database version so that I could make a new version of MAX today. The bug will be officially fixed for beta 2. Which will be available in the next days.

Sometimes developing software is so much fun!