Good Morning - We got the compliance policy figured out but now what I am seeing is devices will go into a non-compliant state and device unmanaged (named) in Azure even though the SOTI never sent the message to Azure that the device is non-compliant. The only thing I am seeing in device agent log is this:
2022-05-07 15:27:35.774|pool-3-thread-4|E|DO|[net.soti.mobicontrol.conditionalaccess.h] Begin heartbeat|
2022-05-07 15:27:36.912|pool-3-thread-4|E|DO|[net.soti.mobicontrol.conditionalaccess.h] Failed to update registration status, clearing saved info|com.microsoft.identity.client.exception.MsalClientException: Connection is not available to refresh token because power optimization is enabled. And the device is in doze mode or the app is standby
at com.microsoft.identity.client.internal.controllers.MsalExceptionAdapter.msalExceptionFromBaseException(SourceFile:51)
at com.microsoft.identity.client.SingleAccountPublicClientApplication$3.onError(SourceFile:350)
at com.microsoft.identity.client.SingleAccountPublicClientApplication$3.onError(SourceFile:336)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.commandCallbackOnError(SourceFile:447)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access$800(SourceFile:82)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher$3.run(SourceFile:429)
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:8641)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)
Caused by: com.microsoft.identity.common.exception.ClientException: Connection is not available to refresh token because power optimization is enabled. And the device is in doze mode or the app is standby
at com.microsoft.identity.common.internal.result.MsalBrokerResultAdapter.getBaseExceptionFromExceptionType(SourceFile:294)
at com.microsoft.identity.common.internal.result.MsalBrokerResultAdapter.getBaseExceptionFromBundle(SourceFile:193)
at com.microsoft.identity.common.internal.result.MsalBrokerResultAdapter.getAcquireTokenResultFromResultBundle(SourceFile:548)
at com.microsoft.identity.common.internal.controllers.BrokerMsalController$2.extractResultBundle(SourceFile:402)
at com.microsoft.identity.common.internal.controllers.BrokerMsalController$2.extractResultBundle(SourceFile:378)
at com.microsoft.identity.common.internal.controllers.BrokerOperationExecutor.performStrategy(SourceFile:206)
at com.microsoft.identity.common.internal.controllers.BrokerOperationExecutor.execute(SourceFile:129)
at com.microsoft.identity.common.internal.controllers.BrokerMsalController.acquireTokenSilent(SourceFile:377)
at com.microsoft.identity.common.internal.commands.SilentTokenCommand.execute(SourceFile:76)
at com.microsoft.identity.common.internal.commands.SilentTokenCommand.execute(SourceFile:42)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.executeCommand(SourceFile:381)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access$000(SourceFile:82)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher$1.run(SourceFile:256)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
And he does not have Doze active.