Skip to content

Crash in account drawer - java.lang.IllegalArgumentException: Key "accountId_0" was already used. #9056

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kewisch opened this issue Apr 10, 2025 · 3 comments · May be fixed by #9073
Open
Assignees
Labels
priority: high High priority issues that need to be addressed soon type: bug Something is causing incorrect behavior or errors type: crash Issues that involve fixing a crash or ANR

Comments

@kewisch
Copy link
Member

kewisch commented Apr 10, 2025

Getting the following crash on a debug build. Possibly requires adding and deleting accounts. May be fallout from the recent changes splitting up the accounts objects.

FATAL EXCEPTION: main
Process: net.thunderbird.android.debug, PID: 22875
java.lang.IllegalArgumentException: Key "accountId_0" was already used. If you are using LazyColumn/Row please make sure you provide a unique key for each item.
 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:453)
 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:895)
 	at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw(LazyLayoutMeasureScope.kt:125)
 	at androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw(LazyListMeasuredItemProvider.kt:55)
 	at androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw$default(LazyListMeasuredItemProvider.kt:49)
 	at androidx.compose.foundation.lazy.LazyListMeasureKt.measureLazyList-x0Ok8Vo(LazyListMeasure.kt:214)
 	at androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.invoke-0kLqBqw(LazyList.kt:326)
 	at androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.invoke(LazyList.kt:183)
 	at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke-0kLqBqw(LazyLayout.kt:119)
 	at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke(LazyLayout.kt:112)
 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:725)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(RowColumnMeasurePolicy.kt:285)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure$default(RowColumnMeasurePolicy.kt:74)
 	at androidx.compose.foundation.layout.ColumnMeasurePolicy.measure-3p2s80s(Column.kt:208)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(RowColumnMeasurePolicy.kt:285)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure$default(RowColumnMeasurePolicy.kt:74)
 	at androidx.compose.foundation.layout.RowMeasurePolicy.measure-3p2s80s(Row.kt:146)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(RowColumnMeasurePolicy.kt:119)
 	at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure$default(RowColumnMeasurePolicy.kt:74)
 	at androidx.compose.foundation.layout.ColumnMeasurePolicy.measure-3p2s80s(Column.kt:208)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.foundation.layout.SizeNode.measure-3p2s80s(Size.kt:838)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.foundation.layout.InsetsPaddingModifier.measure-3p2s80s(WindowInsetsPadding.kt:359)
 	at androidx.compose.ui.node.BackwardsCompatNode.measure-3p2s80s(BackwardsCompatNode.kt:312)
 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:173)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
 	at androidx.compose.ui.layout.RootMeasurePolicy.measure-3p2s80s(RootMeasurePolicy.kt:38)
 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2441)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
 	at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1222)
 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:367)
 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly(MeasureAndLayoutDelegate.kt:622)
 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly(MeasureAndLayoutDelegate.kt:420)
 	at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt:1370)
 	at android.view.View.measure(View.java:27122)
 	at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeView.android.kt:309)
 	at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:296)
 	at android.view.View.measure(View.java:27122)
 	at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1185)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
 	at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
 	at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
 	at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
 	at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
 	at com.android.internal.policy.DecorView.onMeasure(DecorView.java:750)
 	at android.view.View.measure(View.java:27122)
 	at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4182)
 	at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2759)
 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3086)
 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
 	at android.view.Choreographer.doCallbacks(Choreographer.java:952)
 	at android.view.Choreographer.doFrame(Choreographer.java:882)
 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
 	at android.os.Handler.handleCallback(Handler.java:958)
 	at android.os.Handler.dispatchMessage(Handler.java:99)
 	at android.os.Looper.loopOnce(Looper.java:205)
 	at android.os.Looper.loop(Looper.java:294)
 	at android.app.ActivityThread.main(ActivityThread.java:8177)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
@kewisch kewisch changed the title Crash in account drawer Crash in account drawer - java.lang.IllegalArgumentException: Key "accountId_0" was already used. Apr 10, 2025
@kewisch kewisch added the type: crash Issues that involve fixing a crash or ANR label Apr 10, 2025
@kewisch kewisch added the type: bug Something is causing incorrect behavior or errors label Apr 10, 2025
@kewisch kewisch added the priority: high High priority issues that need to be addressed soon label Apr 10, 2025
@kewisch
Copy link
Member Author

kewisch commented Apr 10, 2025

STR is simply to click on the drawer hamburger menu icon, then it crashes. Does not happen with enable_dropdown_drawer feature flag disabled.

@asoucar asoucar moved this from Planning to In progress in Thunderbird for Android - Sprints Apr 15, 2025
@asoucar
Copy link
Contributor

asoucar commented Apr 21, 2025

Investigation shows that only @kewisch's email seems to be causing the issue, at least in our small sample size. More investigation with older thunderbird emails and different file structures is likely necessary.

@asoucar asoucar moved this from In progress to Planning in Thunderbird for Android - Sprints Apr 21, 2025
@kewisch
Copy link
Member Author

kewisch commented Apr 22, 2025

Some more details. It appears that this is indeed in FolderList.kt. For me it happens with the [Gmail] pseudo-folder on the Thunderbird account. The accountId is simply set to the string accountId which seems wrong. For other folders, it is set correctly to a uuid.

This appears to come from

return DisplayAccountFolder(
accountId = "accountId",
folder = Folder(
id = 0L,
name = name,
type = FolderType.REGULAR,
isLocalOnly = false,
),
isInTopGroup = true,
unreadMessageCount = 0,
starredMessageCount = 0,
)

or more specifically from where it is called at

Image

@asoucar asoucar moved this from Planning to In review in Thunderbird for Android - Sprints Apr 22, 2025
@asoucar asoucar moved this from In review to In progress in Thunderbird for Android - Sprints Apr 22, 2025
@asoucar asoucar linked a pull request Apr 22, 2025 that will close this issue
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 23, 2025
@asoucar asoucar moved this from In progress to In review in Thunderbird for Android - Sprints Apr 23, 2025
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 24, 2025
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 24, 2025
Fixes: thunderbird#9056 (+1 squashed commit)
Squashed commits:
[ade7fcb] Adjust fix for testing

Fixes: thunderbird#9056
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 24, 2025
Prevent duplicate account id for placeholder folder

Fixes: 9056

Bring back GH actions read permission to fix daily builds workflow

Add instructions to propose ADRs

Refactor: move :legacy:common.feature to app-common.feature

Refactor: Removed :legacy:preferences from settings.gradle as this module is no longer used & empty

Add link to security hashes in README

Bump actions/setup-java from 4.7.0 to 4.7.1

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@3a4f6e1...c5195ef)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 4.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump github/codeql-action from 3.28.14 to 3.28.15

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.14 to 3.28.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@fc7e4a0...45775bd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump softprops/action-gh-release from 2.2.1 to 2.2.2

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@c95fe14...da05d55)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Middle ground, placeholder and counter

Fixes: thunderbird#9056 (+1 squashed commit)
Squashed commits:
[ade7fcb] Adjust fix for testing

Fixes: thunderbird#9056
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 24, 2025
Prevent duplicate account id for placeholder folder

Fixes: 9056

Bring back GH actions read permission to fix daily builds workflow

Add instructions to propose ADRs

Refactor: move :legacy:common.feature to app-common.feature

Refactor: Removed :legacy:preferences from settings.gradle as this module is no longer used & empty

Add link to security hashes in README

Bump actions/setup-java from 4.7.0 to 4.7.1

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@3a4f6e1...c5195ef)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 4.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump github/codeql-action from 3.28.14 to 3.28.15

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.14 to 3.28.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@fc7e4a0...45775bd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump softprops/action-gh-release from 2.2.1 to 2.2.2

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@c95fe14...da05d55)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Middle ground, placeholder and counter

Fixes: thunderbird#9056 (+1 squashed commit)
Squashed commits:
[ade7fcb] Adjust fix for testing

Fixes: thunderbird#9056

Formatting
asoucar added a commit to asoucar/thunderbird-android that referenced this issue Apr 25, 2025
Prevent duplicate account id for placeholder folder

Fixes: 9056

Bring back GH actions read permission to fix daily builds workflow

Add instructions to propose ADRs

Refactor: move :legacy:common.feature to app-common.feature

Refactor: Removed :legacy:preferences from settings.gradle as this module is no longer used & empty

Add link to security hashes in README

Bump actions/setup-java from 4.7.0 to 4.7.1

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@3a4f6e1...c5195ef)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 4.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump github/codeql-action from 3.28.14 to 3.28.15

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.14 to 3.28.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@fc7e4a0...45775bd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Bump softprops/action-gh-release from 2.2.1 to 2.2.2

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@c95fe14...da05d55)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Middle ground, placeholder and counter

Fixes: thunderbird#9056 (+1 squashed commit)
Squashed commits:
[ade7fcb] Adjust fix for testing

Fixes: thunderbird#9056

Formatting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: high High priority issues that need to be addressed soon type: bug Something is causing incorrect behavior or errors type: crash Issues that involve fixing a crash or ANR
Projects
Status: In review
Development

Successfully merging a pull request may close this issue.

2 participants