We have been struggling with AirWatch not updating internal applications on locked supervised devices, the device needed to be unlocked before application will update.
We have tested this from AirWatch 9.1 - 18.104.22.168 and observed identical behaviour.
After some troubleshooting we have identified the root cause.
When a new application is published to the devices two commands are queued.
- Install Provisioning Profile
- Install Application
The Install Provisioning Profile command is first in queue and Install Application is second.
The Install Application command is ONLY issued after Install Provisioning Profile command is successful.
From Xcode logs we can clearly see that Install Provisioning Profile command CANNOT be issued to locked devices.
The device will respond with NotNow if locked.
If a command is Queued in AirWatch it will be sent to the device every 5 minutes by default.
We have manually deleted the Install Provisioning Profile queued for the device from the database.
Avoid issuing database commands unless you are sure of what you are doing
SELECT * FROM [Airwatch].[deviceCommandQueue].[DeviceQueue] WHERE DeviceID IN (12345) AND StatusID = 1
delete FROM [Airwatch].[deviceCommandQueue].[DeviceQueue] WHERE DeviceID = 12345 AND DeviceQueueID = 4210508
Once deleted the command has disappeared from the troubleshooting tab in the console and application successfully updated on a locked the device in ~5 minutes.