microsoft / appcenter-sdk-android

Development repository for the App Center SDK for Android
Other
276 stars 134 forks source link

NullPointerException on Distribute.resumeDistributeWorkflow #1656

Closed vjgarciag96 closed 5 months ago

vjgarciag96 commented 1 year ago

Description

We are experiencing the next crash in our app, which seems to come from the distribute SDK:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:190)
        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174)
        at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:227)
        at android.app.AlertDialog$Builder.<init>(AlertDialog.java:478)
        at com.microsoft.appcenter.distribute.Distribute.showUpdateSetupFailedDialog(Distribute.java:1581)
        at com.microsoft.appcenter.distribute.Distribute.resumeDistributeWorkflow(Distribute.java:874)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8751)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Repro Steps

Unfortunately, we don't have any consistent repro steps. We have one user that somehow has got into a state in which they always run into the crash every time they open the app.

Some things that may be relevant:

  1. The user was using an AppCenter-provided version of the app.
  2. At some point they switched to use a sideloaded version of the app.
  3. They have the app installed in a personal and a work profile.

Details

  1. Which SDK version are you using? We were using 3.3.0 the first time we reproduced the issue, but updated to 4.4.5 and we are still experiencing the it.
  2. Which OS version did you experience the issue on? Android 12
  3. What device version did you see this error on? Were you using an emulator or a physical device? Galaxy S21 Ultra 5G
  4. What third party libraries are you using? A bunch of them, not sure if an exhaustive list would be helpful here as there are more than 200. Any specific libraries that you would be interested to know about?
  5. Please enable verbose logging for your app using AppCenter.setLogLevel(Log.VERBOSE) before your call to AppCenter.start(...) and include the logs here:

I could get this from the user experiencing the problem, not sure how helpful it is.

2022-10-19 12:10:40.874 28627-28750/? V/AppCenter: {"logs":[{"type":"managedError","timestamp":"2022-10-17T05:01:02.029Z","userId":"4dd7d5dc-ddb4-4e19-98d0-baff645f4910","device":{"sdkName":"appcenter.android","sdkVersion":"3.3.0","model":"SM-G998B","oemName":"samsung","osName":"Android","osVersion":"12","osBuild":"SP1A.210812.016","osApiLevel":31,"locale":"en_GB","timeZoneOffset":60,"screenSize":"1080x2190","appVersion":"8.10.26.100","carrierName":"EE","carrierCountry":"gb","appBuild":"1096418880","appNamespace":"com.touchtype.swiftkey.cesar"},"id":"bafd48ab-bd64-4084-ab2e-7c19924dc1b7","processId":31849,"processName":"com.touchtype.swiftkey.cesar","errorThreadId":2,"errorThreadName":"main","fatal":true,"appLaunchTimestamp":"2022-10-17T05:01:01.760Z","architecture":"arm64-v8a","exception":{"type":"java.lang.NullPointerException","message":"Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference","frames":[{"className":"android.content.ContextWrapper","methodName":"getApplicationInfo","lineNumber":190,"fileName":"ContextWrapper.java"},{"className":"android.view.ContextThemeWrapper","methodName":"getTheme","lineNumber":174,"fileName":"ContextThemeWrapper.java"},{"className":"android.app.AlertDialog","methodName":"resolveDialogTheme","lineNumber":227,"fileName":"AlertDialog.java"},{"className":"android.app.AlertDialog$Builder","methodName":"<init>","lineNumber":478,"fileName":"AlertDialog.java"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"L","lineNumber":15},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"C","lineNumber":300,"fileName":"SourceFile"},{"className":"ha.c","methodName":"run","lineNumber":2},{"className":"android.os.Handler","methodName":"handleCallback","lineNumber":938,"fileName":"Handler.java"},{"className":"android.os.Handler","methodName":"dispatchMessage","lineNumber":99,"fileName":"Handler.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":226,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.app.ActivityThread","methodName":"main","lineNumber":8751,"fileName":"ActivityThread.java"},{"className":"java.lang.reflect.Method","methodName":"invoke","lineNumber":-2,"fileName":"Method.java"},{"className":"com.android.internal.os.RuntimeInit$MethodAndArgsCaller","methodName":"run","lineNumber":571,"fileName":"RuntimeInit.java"},{"className":"com.android.internal.os.ZygoteInit","methodName":"main","lineNumber":1135,"fileName":"ZygoteInit.java"}]},"threads":[{"id":55827,"name":"ThemeManager","frames":[{"className":"android.os.BinderProxy","methodName":"transactNative","lineNumber":-2,"fileName":"BinderProxy.java"},{"className":"android.os.BinderProxy","methodName":"transact","lineNumber":635,"fileName":"BinderProxy.java"},{"className":"android.app.job.IJobScheduler$Stub$Proxy","methodName":"enqueue","lineNumber":342,"fileName":"IJobScheduler.java"},{"className":"android.app.JobSchedulerImpl","methodName":"enqueue","lineNumber":56,"fileName":"JobSchedulerImpl.java"},{"className":"androidx.core.app.JobIntentService$g","methodName":"a","lineNumber":9},{"className":"androidx.core.app.JobIntentService","methodName":"b","lineNumber":16},{"className":"com.touchtype.telemetry.TelemetryJobIntentService","methodName":"h","lineNumber":93,"fileName":"SourceFile"},{"className":"ok.a","methodName":"y","lineNumber":17},{"className":"dh.l$b","methodName":"onSuccess","lineNumber":33,"fileName":"SourceFile"},{"className":"com.google.common.util.concurrent.Futures$CallbackListener","methodName":"run","lineNumber":28},{"className":"java.util.concurrent.ThreadPoolExecutor","methodName":"runWorker","lineNumber":1137,"fileName":"ThreadPoolExecutor.java"},{"className":"java.util.concurrent.ThreadPoolExecutor$Worker","methodName":"run","lineNumber":637,"fileName":"ThreadPoolExecutor.java"},{"className":"java.lang.Thread","methodName":"run","lineNumber":1012,"fileName":"Thread.java"}]},{"id"
2022-10-19 12:10:40.893 28627-28753/? V/AppCenter: {"logs":[{"type":"managedError","timestamp":"2022-10-17T06:16:32.880Z","userId":"4dd7d5dc-ddb4-4e19-98d0-baff645f4910","device":{"sdkName":"appcenter.android","sdkVersion":"3.3.0","model":"SM-G998B","oemName":"samsung","osName":"Android","osVersion":"12","osBuild":"SP1A.210812.016","osApiLevel":31,"locale":"en_GB","timeZoneOffset":60,"screenSize":"1080x2190","appVersion":"8.10.26.100","carrierName":"EE","carrierCountry":"gb","appBuild":"1096418880","appNamespace":"com.touchtype.swiftkey.cesar"},"id":"80850514-a16d-4aea-a219-3976200edcc4","processId":21935,"processName":"com.touchtype.swiftkey.cesar","errorThreadId":2,"errorThreadName":"main","fatal":true,"appLaunchTimestamp":"2022-10-17T06:16:32.750Z","architecture":"arm64-v8a","exception":{"type":"java.lang.NullPointerException","message":"Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference","frames":[{"className":"android.content.ContextWrapper","methodName":"getApplicationInfo","lineNumber":190,"fileName":"ContextWrapper.java"},{"className":"android.view.ContextThemeWrapper","methodName":"getTheme","lineNumber":174,"fileName":"ContextThemeWrapper.java"},{"className":"android.app.AlertDialog","methodName":"resolveDialogTheme","lineNumber":227,"fileName":"AlertDialog.java"},{"className":"android.app.AlertDialog$Builder","methodName":"<init>","lineNumber":478,"fileName":"AlertDialog.java"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"L","lineNumber":15},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"C","lineNumber":300,"fileName":"SourceFile"},{"className":"ha.c","methodName":"run","lineNumber":2},{"className":"android.os.Handler","methodName":"handleCallback","lineNumber":938,"fileName":"Handler.java"},{"className":"android.os.Handler","methodName":"dispatchMessage","lineNumber":99,"fileName":"Handler.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":226,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.app.ActivityThread","methodName":"main","lineNumber":8751,"fileName":"ActivityThread.java"},{"className":"java.lang.reflect.Method","methodName":"invoke","lineNumber":-2,"fileName":"Method.java"},{"className":"com.android.internal.os.RuntimeInit$MethodAndArgsCaller","methodName":"run","lineNumber":571,"fileName":"RuntimeInit.java"},{"className":"com.android.internal.os.ZygoteInit","methodName":"main","lineNumber":1135,"fileName":"ZygoteInit.java"}]},"threads":[{"id":56035,"name":"AppCenter.Looper","frames":[{"className":"android.os.MessageQueue","methodName":"nativePollOnce","lineNumber":-2,"fileName":"MessageQueue.java"},{"className":"android.os.MessageQueue","methodName":"next","lineNumber":335,"fileName":"MessageQueue.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":186,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.os.HandlerThread","methodName":"run","lineNumber":67,"fileName":"HandlerThread.java"}]},{"id":56054,"name":"OkHttp ConnectionPool","frames":[{"className":"java.lang.Object","methodName":"wait","lineNumber":-2,"fileName":"Object.java"},{"className":"com.android.okhttp.ConnectionPool$1","methodName":"run","lineNumber":106,"fileName":"ConnectionPool.java"},{"className":"java.util.concurrent.ThreadPoolExecutor","methodName":"runWorker","lineNumber":1137,"fileName":"ThreadPoolExecutor.java"},{"className":"java.util.concurrent.ThreadPoolExecutor$Worker","methodName":"run","lineNumber":637,"fileName":"ThreadPoolExecutor.java"},{"className":"java.lang.Thread","methodName":"run","lineNumber":1012,"fileName":"Thread.java"}]},{"id":56019,"name":"HeapTaskDaemon","frames":[]},{"id":56051,"name":"AsyncTask #2","frames":[{"className":"java.net.SocketInputStream","methodName":"socketRead0","lineNumber":-2,"fileName":"SocketInputStream.java"},{"cl
2022-10-19 12:10:41.511 28627-28627/? E/AndroidRuntime: FATAL EXCEPTION: main    Process: com.touchtype.swiftkey.cesar, PID: 28627    java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:190)        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174)        at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:227)        at android.app.AlertDialog$Builder.<init>(AlertDialog.java:478)        at com.microsoft.appcenter.distribute.Distribute.R(s:4)        at com.microsoft.appcenter.distribute.Distribute.H(s:74)        at v02.run(s:20)        at android.os.Handler.handleCallback(Handler.java:938)        at android.os.Handler.dispatchMessage(Handler.java:99)        at android.os.Looper.loopOnce(Looper.java:226)        at android.os.Looper.loop(Looper.java:313)        at android.app.ActivityThread.main(ActivityThread.java:8751)        at java.lang.reflect.Method.invoke(Native Method)        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
2022-10-19 12:10:41.542 28627-28627/? D/AppCenterCrashes: Saved JSON content
vjgarciag96 commented 1 year ago

Please let me know if there's some other information we can provide to help you troubleshoot this issue.

vjgarciag96 commented 1 year ago

By digging into the code the problem seems to be that mForegroundActivity is null at this point: https://github.com/microsoft/appcenter-sdk-android/blob/82e68bb7764c0607ca2def51874965116123dff1/sdk/appcenter-distribute/src/main/java/com/microsoft/appcenter/distribute/Distribute.java#L1584

There's a check for mForegroundActivity != null in resumeDistributeWorkflow (which seems to be the only method calling showUpdateSetupFailedDialog), so I'm not sure how that code path is reached with a null Activity. I can think only of some memory visibility problem, or the Activity becoming null somehow after the check.

I guess it could be fixed by adding another mForegroundActivity != null check within that function but it would be nice to find the root cause of the problem first.

Just sharing that in case it is helpful!

DmitriyKirakosyan commented 1 year ago

Hi @vjgarciag96 , thank you for this report and the details! I'm marking it as a bug. May I ask you to send more logs? from the app start til the crash happens?

vjgarciag96 commented 1 year ago

Hi @vjgarciag96 , thank you for this report and the details! I'm marking it as a bug. May I ask you to send more logs? from the app start til the crash happens?

@tehmur can you please help providing the requested logs?

shadyabarada commented 1 year ago

Hi @vjgarciag96 , alongside the requested logs (after you produce them), would it be possible to try clearing app cache and data from the device settings and trying to open the app again and share with us if the issue continuous?

vjgarciag96 commented 1 year ago

@tehmur can you help providing the logs and performing the actions suggested in the previous comments? Thanks!

tehmur commented 1 year ago

Hi. Here are all the logs until the crash. Thank you.

2022-10-24 15:18:42.099 21042-21042/? I/AppCenter: App Center SDK configured successfully.
2022-10-24 15:18:42.101 21042-21064/? D/AppCenter: Loaded stored sessions: {1666350793689=1666350793689//1666350793688, 1666369211759=1666369211759//1666369211755, 1666387342704=1666387342704//1666387342699, 1666405357947=1666405357947//1666405357910, 1666423396267=1666423396267//1666423396253, 1666443345288=1666443345288//1666443345287, 1666462714056=1666462714056//1666462714049, 1666480718322=1666480718322//1666480718320, 1666621088996=1666621088996//1666621088993, 1666621091230=1666621091230//1666621091214}
2022-10-24 15:18:42.102 21042-21042/? D/AppCenter: Cannot read instrumentation variables in a non-test environment.
2022-10-24 15:18:42.102 21042-21042/? D/AppCenter: Cannot read instrumentation variables in a non-test environment.
2022-10-24 15:18:42.114 21042-21067/? D/AppCenter: Network 352 is available.
2022-10-24 15:18:42.114 21042-21067/? D/AppCenter: Network has been connected.
2022-10-24 15:18:42.129 21042-21064/? I/AppCenter: Changed maximum database size to 10485760 bytes.
2022-10-24 15:18:42.129 21042-21064/? D/AppCenter: addGroup(group_core)
2022-10-24 15:18:42.140 21042-21064/? D/AppCenter: checkPendingLogs(group_core) pendingLogCount=0 batchTimeInterval=3000
2022-10-24 15:18:42.140 21042-21064/? D/AppCenter: App Center initialized.
2022-10-24 15:18:42.140 21042-21064/? D/AppCenter: removeGroup(groupErrors)
2022-10-24 15:18:42.140 21042-21064/? D/AppCenter: removeGroup(groupErrors/one)
2022-10-24 15:18:42.140 21042-21064/? D/AppCenter: addGroup(groupErrors)
2022-10-24 15:18:42.143 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors) pendingLogCount=352 batchTimeInterval=3000
2022-10-24 15:18:42.144 21042-21064/? D/AppCenter: triggerIngestion(groupErrors) pendingLogCount=352
2022-10-24 15:18:42.144 21042-21064/? D/AppCenter: Trying to get 1 logs from the Persistence database for groupErrors
2022-10-24 15:18:42.220 21042-21064/? D/AppCenter: Returning 1 log(s) with an ID, e37f4daa-5bfa-4579-a45c-b2cdb87621a6
2022-10-24 15:18:42.220 21042-21064/? D/AppCenter: The SID/ID pairs for returning log(s) is/are:
2022-10-24 15:18:42.220 21042-21064/? D/AppCenter:  null / 2408
2022-10-24 15:18:42.220 21042-21064/? D/AppCenter: ingestLogs(groupErrors,e37f4daa-5bfa-4579-a45c-b2cdb87621a6) pendingLogCount=351
2022-10-24 15:18:42.230 21042-21064/? D/AppCenter: addGroup(groupErrors/one)
2022-10-24 15:18:42.239 21042-21079/? V/AppCenter: Calling https://in.appcenter.ms/logs?api-version=1.0.0...
2022-10-24 15:18:42.239 21042-21079/? V/AppCenter: Headers: {Content-Encoding=gzip, Install-ID=**********************8f44, App-Secret=****************************3519baf9, Content-Type=application/json}
2022-10-24 15:18:42.239 21042-21079/? V/AppCenter: {"logs":[{"type":"managedError","timestamp":"2022-10-17T10:21:54.870Z","userId":"**********************4910","device":{"sdkName":"appcenter.android","sdkVersion":"3.3.0","model":"SM-G998B","oemName":"samsung","osName":"Android","osVersion":"12","osBuild":"SP1A.210812.016","osApiLevel":31,"locale":"en_GB","timeZoneOffset":60,"screenSize":"1080x2190","appVersion":"8.10.26.100","carrierName":"EE","carrierCountry":"gb","appBuild":"1096418880","appNamespace":"com.touchtype.swiftkey.cesar"},"id":"**********************33a3","processId":11873,"processName":"com.touchtype.swiftkey.cesar","errorThreadId":2,"errorThreadName":"main","fatal":true,"appLaunchTimestamp":"2022-10-17T10:21:54.653Z","architecture":"arm64-v8a","exception":{"type":"java.lang.NullPointerException","message":"Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference","frames":[{"className":"android.content.ContextWrapper","methodName":"getApplicationInfo","lineNumber":190,"fileName":"ContextWrapper.java"},{"className":"android.view.ContextThemeWrapper","methodName":"getTheme","lineNumber":174,"fileName":"ContextThemeWrapper.java"},{"className":"android.app.AlertDialog","methodName":"resolveDialogTheme","lineNumber":227,"fileName":"AlertDialog.java"},{"className":"android.app.AlertDialog$Builder","methodName":"<init>","lineNumber":478,"fileName":"AlertDialog.java"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"O","lineNumber":3,"fileName":"s"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"F","lineNumber":58,"fileName":"s"},{"className":"d41","methodName":"run","lineNumber":2,"fileName":"s"},{"className":"android.os.Handler","methodName":"handleCallback","lineNumber":938,"fileName":"Handler.java"},{"className":"android.os.Handler","methodName":"dispatchMessage","lineNumber":99,"fileName":"Handler.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":226,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.app.ActivityThread","methodName":"main","lineNumber":8751,"fileName":"ActivityThread.java"},{"className":"java.lang.reflect.Method","methodName":"invoke","lineNumber":-2,"fileName":"Method.java"},{"className":"com.android.internal.os.RuntimeInit$MethodAndArgsCaller","methodName":"run","lineNumber":571,"fileName":"RuntimeInit.java"},{"className":"com.android.internal.os.ZygoteInit","methodName":"main","lineNumber":1135,"fileName":"ZygoteInit.java"}]},"threads":[{"id":56728,"name":"FinalizerWatchdogDaemon","frames":[{"className":"java.lang.Object","methodName":"wait","lineNumber":-2,"fileName":"Object.java"},{"className":"java.lang.Object","methodName":"wait","lineNumber":442,"fileName":"Object.java"},{"className":"java.lang.Object","methodName":"wait","lineNumber":568,"fileName":"Object.java"},{"className":"java.lang.Daemons$FinalizerWatchdogDaemon","methodName":"sleepUntilNeeded","lineNumber":385,"fileName":"Daemons.java"},{"className":"java.lang.Daemons$FinalizerWatchdogDaemon","methodName":"runInternal","lineNumber":365,"fileName":"Daemons.java"},{"className":"java.lang.Daemons$Daemon","methodName":"run","lineNumber":140,"fileName":"Daemons.java"},{"className":"java.lang.Thread","methodName":"run","lineNumber":1012,"fileName":"Thread.java"}]},{"id":56756,"name":"DefaultDispatcher-worker-1","frames":[{"className":"jdk.internal.misc.Unsafe","methodName":"park","lineNumber":-2,"fileName":"Unsafe.java"},{"className":"java.util.concurrent.locks.LockSupport","methodName":"parkNanos","lineNumber":357,"fileName":"LockSupport.java"},{"className":"wm0$a","methodName":"run","lineNumber":37,"fileName":"s"}]},{"id":2,"name":"main","frames":[{"className":"dalvik.system.VMStack","methodName":"getThreadStackTrace","lineNumber":-2,"fileName":"VMStack.java"},{"className":"java.lang.Thread","methodName":"getStackTrace","lineNumber":1841,"fileName":"Thread.java"},{"cl
2022-10-24 15:18:42.249 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors/one) pendingLogCount=0 batchTimeInterval=3000
2022-10-24 15:18:42.252 21042-21064/? D/AppCenterCrashes: Processing crash report for the last session.
2022-10-24 15:18:42.261 21042-21064/? D/AppCenterCrashes: Processed crash report for the last session.
2022-10-24 15:18:42.261 21042-21064/? D/AppCenterCrashes: No previous minidump sub-folders.
2022-10-24 15:18:42.263 21042-21064/? D/AppCenterCrashes: Process pending error file: /data/user/10/com.touchtype.swiftkey.cesar/files/error/13715ca3-5bbc-4bcd-abe4-fa58f1f18177.json
2022-10-24 15:18:42.267 21042-21064/? I/AppCenter: Crashes service started from application.
2022-10-24 15:18:42.267 21042-21064/? D/AppCenter: removeGroup(group_distribute)
2022-10-24 15:18:42.267 21042-21042/? D/AppCenterCrashes: CrashesListener.shouldAwaitUserConfirmation returned false, will send logs.
2022-10-24 15:18:42.268 21042-21064/? D/AppCenter: removeGroup(group_distribute/one)
2022-10-24 15:18:42.268 21042-21064/? D/AppCenter: addGroup(group_distribute)
2022-10-24 15:18:42.282 21042-21064/? D/AppCenter: checkPendingLogs(group_distribute) pendingLogCount=0 batchTimeInterval=3000
2022-10-24 15:18:42.282 21042-21064/? D/AppCenter: addGroup(group_distribute/one)
2022-10-24 15:18:42.296 21042-21064/? D/AppCenter: checkPendingLogs(group_distribute/one) pendingLogCount=0 batchTimeInterval=3000
2022-10-24 15:18:42.297 21042-21064/? I/AppCenter: Distribute service started from application.
2022-10-24 15:18:42.297 21042-21042/? D/AppCenterDistribute: InstallerPackageName=null
2022-10-24 15:18:42.298 21042-21042/? D/AppCenterDistribute: Resume distribute workflow...
2022-10-24 15:18:42.298 21042-21042/? D/AppCenterDistribute: In-app updates setup failure detected.
2022-10-24 15:18:42.298 21042-21042/? D/AppCenterDistribute: Show update setup failed dialog.
2022-10-24 15:18:42.298 21042-21064/? D/AppCenter: Storing a log to the Persistence database for log type startService with flags=1
2022-10-24 15:18:42.299 21042-21042/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.touchtype.swiftkey.cesar, PID: 21042
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:190)
        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174)
        at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:227)
        at android.app.AlertDialog$Builder.<init>(AlertDialog.java:478)
        at com.microsoft.appcenter.distribute.Distribute.R(s:4)
        at com.microsoft.appcenter.distribute.Distribute.H(s:74)
        at v02.run(s:20)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8751)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: Stored a log to the Persistence database for log type startService with databaseId=3101
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: enqueue(group_core) pendingLogCount=1
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: checkPendingLogs(group_core) pendingLogCount=1 batchTimeInterval=3000
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors) pendingLogCount=351 batchTimeInterval=3000
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: triggerIngestion(groupErrors) pendingLogCount=351
2022-10-24 15:18:42.303 21042-21064/? D/AppCenter: Trying to get 1 logs from the Persistence database for groupErrors
2022-10-24 15:18:42.370 21042-21064/? D/AppCenter: Returning 1 log(s) with an ID, 07f31ebc-b378-4ddd-a3ac-4ba06f86c80b
2022-10-24 15:18:42.370 21042-21064/? D/AppCenter: The SID/ID pairs for returning log(s) is/are:
2022-10-24 15:18:42.370 21042-21064/? D/AppCenter:  null / 2410
2022-10-24 15:18:42.370 21042-21064/? D/AppCenter: ingestLogs(groupErrors,07f31ebc-b378-4ddd-a3ac-4ba06f86c80b) pendingLogCount=350
2022-10-24 15:18:42.378 21042-21064/? D/AppCenter: Storing a log to the Persistence database for log type managedError with flags=2
2022-10-24 15:18:42.383 21042-21064/? D/AppCenter: Storage is full, trying to delete the oldest log that has the lowest priority which is lower or equal priority than the new log
2022-10-24 15:18:42.387 21042-21064/? D/AppCenter: Deleted log id=3101
2022-10-24 15:18:42.388 21042-21064/? D/AppCenter: Storage is full, trying to delete the oldest log that has the lowest priority which is lower or equal priority than the new log
2022-10-24 15:18:42.389 21042-21097/? V/AppCenter: Calling https://in.appcenter.ms/logs?api-version=1.0.0...
2022-10-24 15:18:42.389 21042-21097/? V/AppCenter: Headers: {Content-Encoding=gzip, Install-ID=**********************8f44, App-Secret=****************************3519baf9, Content-Type=application/json}
2022-10-24 15:18:42.390 21042-21097/? V/AppCenter: {"logs":[{"type":"managedError","timestamp":"2022-10-17T10:21:56.704Z","userId":"**********************4910","device":{"sdkName":"appcenter.android","sdkVersion":"3.3.0","model":"SM-G998B","oemName":"samsung","osName":"Android","osVersion":"12","osBuild":"SP1A.210812.016","osApiLevel":31,"locale":"en_GB","timeZoneOffset":60,"screenSize":"1080x2190","appVersion":"8.10.26.100","carrierName":"EE","carrierCountry":"gb","appBuild":"1096418880","appNamespace":"com.touchtype.swiftkey.cesar"},"id":"**********************ee785","processId":11952,"processName":"com.touchtype.swiftkey.cesar","errorThreadId":2,"errorThreadName":"main","fatal":true,"appLaunchTimestamp":"2022-10-17T10:21:56.295Z","architecture":"arm64-v8a","exception":{"type":"java.lang.NullPointerException","message":"Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference","frames":[{"className":"android.content.ContextWrapper","methodName":"getApplicationInfo","lineNumber":190,"fileName":"ContextWrapper.java"},{"className":"android.view.ContextThemeWrapper","methodName":"getTheme","lineNumber":174,"fileName":"ContextThemeWrapper.java"},{"className":"android.app.AlertDialog","methodName":"resolveDialogTheme","lineNumber":227,"fileName":"AlertDialog.java"},{"className":"android.app.AlertDialog$Builder","methodName":"<init>","lineNumber":478,"fileName":"AlertDialog.java"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"O","lineNumber":3,"fileName":"s"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"F","lineNumber":58,"fileName":"s"},{"className":"d41","methodName":"run","lineNumber":2,"fileName":"s"},{"className":"android.os.Handler","methodName":"handleCallback","lineNumber":938,"fileName":"Handler.java"},{"className":"android.os.Handler","methodName":"dispatchMessage","lineNumber":99,"fileName":"Handler.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":226,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.app.ActivityThread","methodName":"main","lineNumber":8751,"fileName":"ActivityThread.java"},{"className":"java.lang.reflect.Method","methodName":"invoke","lineNumber":-2,"fileName":"Method.java"},{"className":"com.android.internal.os.RuntimeInit$MethodAndArgsCaller","methodName":"run","lineNumber":571,"fileName":"RuntimeInit.java"},{"className":"com.android.internal.os.ZygoteInit","methodName":"main","lineNumber":1135,"fileName":"ZygoteInit.java"}]},"threads":[{"id":56732,"name":"FinalizerDaemon","frames":[{"className":"java.lang.Object","methodName":"wait","lineNumber":-2,"fileName":"Object.java"},{"className":"java.lang.Object","methodName":"wait","lineNumber":442,"fileName":"Object.java"},{"className":"java.lang.ref.ReferenceQueue","methodName":"remove","lineNumber":203,"fileName":"ReferenceQueue.java"},{"className":"java.lang.ref.ReferenceQueue","methodName":"remove","lineNumber":224,"fileName":"ReferenceQueue.java"},{"className":"java.lang.Daemons$FinalizerDaemon","methodName":"runInternal","lineNumber":300,"fileName":"Daemons.java"},{"className":"java.lang.Daemons$Daemon","methodName":"run","lineNumber":140,"fileName":"Daemons.java"},{"className":"java.lang.Thread","methodName":"run","lineNumber":1012,"fileName":"Thread.java"}]},{"id":56762,"name":"DefaultDispatcher-worker-2","frames":[{"className":"jdk.internal.misc.Unsafe","methodName":"park","lineNumber":-2,"fileName":"Unsafe.java"},{"className":"java.util.concurrent.locks.LockSupport","methodName":"parkNanos","lineNumber":357,"fileName":"LockSupport.java"},{"className":"wm0$a","methodName":"run","lineNumber":37,"fileName":"s"}]},{"id":56738,"name":"Profile Saver","frames":[]},{"id":56728,"name":"Signal Catcher","frames":[]},{"id":56742,"name":"SplitCompatBackgroundThread","frames":[{"className":"jdk.internal.misc.Unsafe","methodName":"park","lineNumber":-2,"fileName":"Unsafe.java"},{"classN
2022-10-24 15:18:42.391 21042-21064/? D/AppCenter: Deleted log id=2408
2022-10-24 15:18:42.393 21042-21064/? D/AppCenter: Stored a log to the Persistence database for log type managedError with databaseId=3102
2022-10-24 15:18:42.393 21042-21064/? D/AppCenter: enqueue(groupErrors) pendingLogCount=351
2022-10-24 15:18:42.393 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors) pendingLogCount=351 batchTimeInterval=3000
2022-10-24 15:18:42.393 21042-21064/? D/AppCenter: triggerIngestion(groupErrors) pendingLogCount=351
2022-10-24 15:18:42.393 21042-21064/? D/AppCenter: Trying to get 1 logs from the Persistence database for groupErrors
2022-10-24 15:18:42.456 21042-21064/? D/AppCenter: Returning 1 log(s) with an ID, 5694b5f3-d04d-4eb6-af2e-d750604c572c
2022-10-24 15:18:42.456 21042-21064/? D/AppCenter: The SID/ID pairs for returning log(s) is/are:
2022-10-24 15:18:42.456 21042-21064/? D/AppCenter:  null / 2412
2022-10-24 15:18:42.456 21042-21064/? D/AppCenter: ingestLogs(groupErrors,5694b5f3-d04d-4eb6-af2e-d750604c572c) pendingLogCount=350
2022-10-24 15:18:42.468 21042-21064/? D/AppCenterCrashes: Error report: 13715ca3-5bbc-4bcd-abe4-fa58f1f18177 does not have any attachment.
2022-10-24 15:18:42.473 21042-21064/? I/AppCenterCrashes: Deleting error log file 13715ca3-5bbc-4bcd-abe4-fa58f1f18177.json
2022-10-24 15:18:42.473 21042-21084/? V/AppCenter: Calling https://in.appcenter.ms/logs?api-version=1.0.0...
2022-10-24 15:18:42.473 21042-21084/? V/AppCenter: Headers: {Content-Encoding=gzip, Install-ID=*************************8f44, App-Secret=****************************3519baf9, Content-Type=application/json}
2022-10-24 15:18:42.473 21042-21084/? V/AppCenter: {"logs":[{"type":"managedError","timestamp":"2022-10-17T10:21:58.314Z","userId":"*************************4910","device":{"sdkName":"appcenter.android","sdkVersion":"3.3.0","model":"SM-G998B","oemName":"samsung","osName":"Android","osVersion":"12","osBuild":"SP1A.210812.016","osApiLevel":31,"locale":"en_GB","timeZoneOffset":60,"screenSize":"1080x2190","appVersion":"8.10.26.100","carrierName":"EE","carrierCountry":"gb","appBuild":"1096418880","appNamespace":"com.touchtype.swiftkey.cesar"},"id":"**********************d456","processId":12034,"processName":"com.touchtype.swiftkey.cesar","errorThreadId":2,"errorThreadName":"main","fatal":true,"appLaunchTimestamp":"2022-10-17T10:21:58.086Z","architecture":"arm64-v8a","exception":{"type":"java.lang.NullPointerException","message":"Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference","frames":[{"className":"android.content.ContextWrapper","methodName":"getApplicationInfo","lineNumber":190,"fileName":"ContextWrapper.java"},{"className":"android.view.ContextThemeWrapper","methodName":"getTheme","lineNumber":174,"fileName":"ContextThemeWrapper.java"},{"className":"android.app.AlertDialog","methodName":"resolveDialogTheme","lineNumber":227,"fileName":"AlertDialog.java"},{"className":"android.app.AlertDialog$Builder","methodName":"<init>","lineNumber":478,"fileName":"AlertDialog.java"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"O","lineNumber":3,"fileName":"s"},{"className":"com.microsoft.appcenter.distribute.Distribute","methodName":"F","lineNumber":58,"fileName":"s"},{"className":"d41","methodName":"run","lineNumber":2,"fileName":"s"},{"className":"android.os.Handler","methodName":"handleCallback","lineNumber":938,"fileName":"Handler.java"},{"className":"android.os.Handler","methodName":"dispatchMessage","lineNumber":99,"fileName":"Handler.java"},{"className":"android.os.Looper","methodName":"loopOnce","lineNumber":226,"fileName":"Looper.java"},{"className":"android.os.Looper","methodName":"loop","lineNumber":313,"fileName":"Looper.java"},{"className":"android.app.ActivityThread","methodName":"main","lineNumber":8751,"fileName":"ActivityThread.java"},{"className":"java.lang.reflect.Method","methodName":"invoke","lineNumber":-2,"fileName":"Method.java"},{"className":"com.android.internal.os.RuntimeInit$MethodAndArgsCaller","methodName":"run","lineNumber":571,"fileName":"RuntimeInit.java"},{"className":"com.android.internal.os.ZygoteInit","methodName":"main","lineNumber":1135,"fileName":"ZygoteInit.java"}]},"threads":[{"id":56738,"name":"FinalizerWatchdogDaemon","frames":[{"className":"java.lang.Object","methodName":"wait","lineNumber":-2,"fileName":"Object.java"},{"className":"java.lang.Object","methodName":"wait","lineNumber":442,"fileName":"Object.java"},{"className":"java.lang.Object","methodName":"wait","lineNumber":568,"fileName":"Object.java"},{"className":"java.lang.Daemons$FinalizerWatchdogDaemon","methodName":"sleepUntilNeeded","lineNumber":385,"fileName":"Daemons.java"},{"className":"java.lang.Daemons$FinalizerWatchdogDaemon","methodName":"runInternal","lineNumber":365,"fileName":"Daemons.java"},{"className":"java.lang.Daemons$Daemon","methodName":"run","lineNumber":140,"fileName":"Daemons.java"},{"className":"java.lang.Thread","methodName":"run","lineNumber":1012,"fileName":"Thread.java"}]},{"id":56766,"name":"DefaultDispatcher-worker-1","frames":[{"className":"jdk.internal.misc.Unsafe","methodName":"park","lineNumber":-2,"fileName":"Unsafe.java"},{"className":"java.util.concurrent.locks.LockSupport","methodName":"parkNanos","lineNumber":357,"fileName":"LockSupport.java"},{"className":"wm0$a","methodName":"run","lineNumber":37,"fileName":"s"}]},{"id":2,"name":"main","frames":[{"className":"dalvik.system.VMStack","methodName":"getThreadStackTrace","lineNumber":-2,"fileName":"VMStack.java"},{"className":"java.lang.Thread","methodName":"getStackTrace","lineNumber":1841,"fileName":"Thread.java"},{"cl
2022-10-24 15:18:42.473 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors) pendingLogCount=350 batchTimeInterval=3000
2022-10-24 15:18:42.474 21042-21064/? D/AppCenter: triggerIngestion(groupErrors) pendingLogCount=350
2022-10-24 15:18:42.474 21042-21064/? D/AppCenter: Already sending 3 batches of analytics data to the server.
2022-10-24 15:18:42.474 21042-21064/? D/AppCenter: checkPendingLogs(groupErrors) pendingLogCount=350 batchTimeInterval=3000
2022-10-24 15:18:42.474 21042-21064/? D/AppCenter: triggerIngestion(groupErrors) pendingLogCount=350
2022-10-24 15:18:42.474 21042-21064/? D/AppCenter: Already sending 3 batches of analytics data to the server.
2022-10-24 15:18:42.480 21042-21042/? D/AppCenterCrashes: Saving uncaught exception.
2022-10-24 15:18:42.486 21042-21042/? D/AppCenterCrashes: Saved JSON content for ingestion into /data/user/10/com.touchtype.swiftkey.cesar/files/error/36959b11-dcb2-4cf5-8458-8d5b77f96e10.json
2022-10-24 15:18:42.487 21042-21064/? D/AppCenter: Cancelling 3 network call(s).
2022-10-24 15:18:42.488 21042-21064/? D/AppCenter: Cleared pending log states
2022-10-24 15:18:42.488 21042-21064/? D/AppCenter: Channel completed shutdown.
DmitriyKirakosyan commented 5 months ago

As we do not have plans to fix this bug in the next year, I'm closing the issue.