[X] I have used the search function to see if someone else has already submitted the same bug report.
[X] I will describe the problem with as much detail as possible.
App
Thunderbird for Android
App version
8.0b4
Where did you get the app from?
Google Play
Android version
12; LineageOS 19-20230817-NIGHTLY-h918
Device model
LG V20 H918
Steps to reproduce
I don't know how to get an account into this state.
I am concurrently experiencing #8049/#6680. I've been getting IllegalStateException: No outbox_state entry for message with id 1 notifications within the last few days, after having updated to 8.0b4, with the icon color matching (only) that of the buggy account.
While investigating, I noticed that there was no Outbox folder in the sidebar for the account in question, and I came across #5926, so I tried sending two test messages from the (one to the same account, and one to another configured account, which appeared to fail with a new IllegalStateException notification but did actually appear in the respective accounts' inboxes. No Outbox folder was created as would be expected.
I began using TBA with the 8.0b1 release. If i recall correctly, the buggy account is the second out of three accounts that I configured. I did at one point manually enable sync (all accounts) and disable push (buggy account) in the Inbox folder settings.
(While writing this issue, I received a notification for a test message that I had sent earlier (and thus already received).)
Expected behavior
The inbox folder should behave normally and not as an outbox.
The database state should be correct:
The outboxFolderId preference should never point to a folder where the type field in its folders table row is not outbox.
New accounts should never be created without an outbox with folder ID 1.
Accounts with a bad outboxFolderId and/or a missing outbox should be corrected on app startup.
All three accounts were freshly configured when I first installed the app as Thunderbird for Android 8.0b1, so I would expect the buggy account to have an outbox on ID 1 and the inbox on ID 2 like the other two accounts, and I would expect all three account databases to be consistent in whether the display_class and poll_class fields exist.
Actual behavior
The inbox behaves as if it were the outbox, but it still shows the inbox's messages. Specifically:
Swipe actions do not work.
The overflow menu has a "Send messages" entry.
Messages behave as if they were in the outbox folder:
The toolbar has a "Compose" button.
The overflow menu has "Move to Drafts" entry.
(I do not recall if the inbox behaved this way prior to my testing. I normally use the Unified Inbox. I also do not know what the state of any account's folders table was prior to sending the test messages.)
The folders table row with ID 1 in the buggy account's database looks like this:
It is the inbox, instead of the outbox, even though the account's outboxFolderId preference is set to 1.
The type field is inbox.
It is missing the display_class and poll_class fields, and the non-buggy accounts have those columns.
All accounts have outboxFolderId set to 1, and the two non-buggy ones have an outbox on folder ID 1. The outbox_state tables of all accounts were empty at the time I pulled the databases from my device.
Output of sqlite3 -line <db file> 'select * from folders where id = 1;':
Checklist
App
Thunderbird for Android
App version
8.0b4
Where did you get the app from?
Google Play
Android version
12; LineageOS 19-20230817-NIGHTLY-h918
Device model
LG V20 H918
Steps to reproduce
I don't know how to get an account into this state.
I am concurrently experiencing #8049/#6680. I've been getting
IllegalStateException: No outbox_state entry for message with id 1
notifications within the last few days, after having updated to 8.0b4, with the icon color matching (only) that of the buggy account.While investigating, I noticed that there was no Outbox folder in the sidebar for the account in question, and I came across #5926, so I tried sending two test messages from the (one to the same account, and one to another configured account, which appeared to fail with a new IllegalStateException notification but did actually appear in the respective accounts' inboxes. No Outbox folder was created as would be expected.
I began using TBA with the 8.0b1 release. If i recall correctly, the buggy account is the second out of three accounts that I configured. I did at one point manually enable sync (all accounts) and disable push (buggy account) in the Inbox folder settings.
(While writing this issue, I received a notification for a test message that I had sent earlier (and thus already received).)
Expected behavior
The inbox folder should behave normally and not as an outbox.
The database state should be correct:
outboxFolderId
preference should never point to a folder where thetype
field in itsfolders
table row is notoutbox
.outboxFolderId
and/or a missing outbox should be corrected on app startup.All three accounts were freshly configured when I first installed the app as Thunderbird for Android 8.0b1, so I would expect the buggy account to have an outbox on ID 1 and the inbox on ID 2 like the other two accounts, and I would expect all three account databases to be consistent in whether the
display_class
andpoll_class
fields exist.Actual behavior
The inbox behaves as if it were the outbox, but it still shows the inbox's messages. Specifically:
(I do not recall if the inbox behaved this way prior to my testing. I normally use the Unified Inbox. I also do not know what the state of any account's
folders
table was prior to sending the test messages.)The
folders
table row with ID 1 in the buggy account's database looks like this:outboxFolderId
preference is set to 1.type
field isinbox
.display_class
andpoll_class
fields, and the non-buggy accounts have those columns.All accounts have
outboxFolderId
set to 1, and the two non-buggy ones have an outbox on folder ID 1. Theoutbox_state
tables of all accounts were empty at the time I pulled the databases from my device.Output of
sqlite3 -line <db file> 'select * from folders where id = 1;'
:Logs
No response