Have Fennec Beta installed with 3-4 addons.
The language is correctly changed and no issues are present.
Fenix Beta crashes after the language was changed when resuming it.
Only one of the two instances is usable.
This is also reproducible when sending tabs to Fennec.
Android device: Google Pixel 4 XL (10), Samsung Galaxy S7 (7), Samsung Galaxy Tab S6 ( 9), Huawei P9 Lite (7).
Type a message
Fenix version: Beta migration 75.0.0-beta.3 build, 4/1.
Logcat(Click to expand!)
--------- beginning of crash
2020-04-02 12:49:55.692 11311-11311/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.mozilla.firefox_beta, PID: 11311
java.util.NoSuchElementException: Key en-US is missing in the map.
at kotlin.collections.ArraysKt___ArraysKt.getValue(_Arrays.kt:3)
at kotlin.jvm.internal.Intrinsics.translate(Intrinsics.java:2)
at mozilla.components.feature.addons.ui.UnsupportedAddonsAdapter.onBindViewHolder(UnsupportedAddonsAdapter.kt:7)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:157)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:1)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:8)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:12)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:125)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:8)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:9)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:2)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
at android.view.View.layout(View.java:22455)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3157)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2614)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
2020-04-02 12:49:55.693 11311-11311/? E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:726)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

This is also reproducible on the previous Beta migration build 75.0.0-beta.2 with Pixel 2 (Android 9).
Still reproducible on Migration Beta build 75.0.0-beta 4 with OnePlus 5T (Android 9).
This should be fixed :)
@abodea Would you mind taking a look?
Hi @Amejia481 , unfortunately this is still reproducible after performing a migration to the latest Fenix Beta Migration build 75.0.0-beta.5 (Build #2015734507) 37.0.4, 5288e1e91 GV: 75.0-20200403064004 AS: 0.55.2 from 4/14 using the following devices:
• Google Pixel 3a (Android 10)
• Huawei Mate 20 Lite (Android 9)
• OnePlus A3 (Android 6.0.1)
► Video

► Log
--------- beginning of crash
2020-04-15 14:05:30.012 24455-24455/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.mozilla.firefox_beta, PID: 24455
java.util.NoSuchElementException: Key en-US is missing in the map.
at kotlin.collections.ArraysKt___ArraysKt.getValue(_Arrays.kt:3)
at kotlin.jvm.internal.Intrinsics.translate(Intrinsics.java:2)
at mozilla.components.feature.addons.ui.UnsupportedAddonsAdapter.onBindViewHolder(UnsupportedAddonsAdapter.kt:7)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:157)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:1)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:8)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:12)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:125)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:8)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:9)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:2)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3157)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2614)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
2020-04-15 14:05:30.012 24455-24455/? E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:726)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-04-15 14:05:30.013 24455-24455/? I/mozac/CrashReporter: Received crash: UncaughtExceptionCrash(throwable=java.util.NoSuchElementException: Key en-US is missing in the map., breadcrumbs=[Breadcrumb(message=Changing to fragment homeFragment, isCustomTab: false, data={}, category=DestinationChanged, level=INFO, type=DEFAULT, date=Wed Apr 15 14:04:49 GMT+03:00 2020), Breadcrumb(message=Changing to fragment settingsFragment, isCustomTab: false, data={}, category=DestinationChanged, level=INFO, type=DEFAULT, date=Wed Apr 15 14:04:51 GMT+03:00 2020), Breadcrumb(message=Changing to fragment addonsManagementFragment, isCustomTab: false, data={}, category=DestinationChanged, level=INFO, type=DEFAULT, date=Wed Apr 15 14:04:53 GMT+03:00 2020), Breadcrumb(message=Changing to fragment notYetSupportedAddonFragment, isCustomTab: false, data={}, category=DestinationChanged, level=INFO, type=DEFAULT, date=Wed Apr 15 14:04:54 GMT+03:00 2020), Breadcrumb(message=Changing to fragment notYetSupportedAddonFragment, isCustomTab: false, data={}, category=DestinationChanged, level=INFO, type=DEFAULT, date=Wed Apr 15 14:05:29 GMT+03:00 2020)])
2020-04-15 14:05:30.013 24455-24455/? I/mozac/CrashReporter: Showing notification
Sorry, my mistake this patch https://github.com/mozilla-mobile/fenix/pull/9931 needs to be added to the migration build, now it's only on nightly.
Verified as fixed on the latest Beta Migration Build 76.0.0-beta.1 with OnePlus 6T (Android 9) and Motorola Moto G6 (Android 8).
The app does not crash when accessing "Not yet available" section after changing the language.
I will close this issue and move it to Done. Thanks!