Unable to Install Apps through MDM

When we try to Install an Application through InstallApplicationCommand through MDM we are getting the below errors. Apple has not documented the reason for the below errors and we are setting these error responses more frequently and random in iOS 13 and iOS 14 versions.

1. Couldn’t communicate with a helper application

Code Block <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CommandUUID</key>
<string>InstallApplication</string>
<key>ErrorChain</key>
<array>
<dict>
<key>ErrorCode</key>
<integer>4097</integer>
<key>ErrorDomain</key>
<string>NSCocoaErrorDomain</string>
<key>LocalizedDescription</key>
<string>Couldn’t communicate with a helper application.</string>
</dict>
</array>
<key>RejectionReason</key>
<string>NotSupported</string>
<key>Status</key>
<string>Error</string>
<key>UDID</key>
<string>0000-000000000000</string>
</dict>
</plist>

Rejection reason key as dictionary "NotSupported" but if multiple attempts are made, it succeeded in one of the attempts. This Error is seen in response to many commands and occurs very randomly. Commands such as SecurityInfo, RestartDevice, InstallProfile etc also gives this response. Feedback raised to apple is still unresolved. Refer this forum post. .

2. Purchase Batch Failed

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CommandUUID</key>
<string>InstallApplication</string>
<key>ErrorChain</key>
<array>
<dict>
<key>ErrorCode</key>
<integer>1005</integer>
<key>ErrorDomain</key>
<string>DeviceManagement.error</string>
<key>LocalizedDescription</key>
<string>Could not install app.</string>
</dict>
<dict>
<key>ErrorCode</key>
<integer>12</integer>
<key>ErrorDomain</key>
<string>AMSErrorDomain</string>
<key>LocalizedDescription</key>
<string>Purchase Batch Failed</string>
</dict>
</array>
<key>Status</key>
<string>Error</string>
<key>UDID</key>
<string>0000-000000000000</string>
</dict>
</plist>


3. The iTunes Store ID of the application could not be validated.
Code Block <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CommandUUID</key>
<string>InstallApplication</string>
<key>ErrorChain</key>
<array>
<dict>
<key>ErrorCode</key>
<integer>12023</integer>
<key>ErrorDomain</key>
<string>MCMDMErrorDomain</string>
<key>LocalizedDescription</key>
<string>The iTunes Store ID of the application could not be validated.</string>
<key>USEnglishDescription</key>
<string>The iTunes Store ID of the application could not be validated.</string>
</dict>
</array>
<key>RejectionReason</key>
<string>CouldNotVerifyAppID</string>
<key>Status</key>
<string>Error</string>
<key>UDID</key>
<string>0000-000000000000</string>
</dict>
</plist>


4. An unknown error has occurred

Code Block <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CommandUUID</key>
<string>InstallApplication</string>
<key>ErrorChain</key>
<array>
<dict>
<key>ErrorCode</key>
<integer>5002</integer>
<key>ErrorDomain</key>
<string>ASDServerErrorDomain</string>
<key>LocalizedDescription</key>
<string>An unknown error has occurred</string>
</dict>
</array>
<key>RejectionReason</key>
<string>NotSupported</string>
<key>Status</key>
<string>Error</string>
<key>UDID</key>
<string>0000-000000000000</string>
</dict>
</plist>


It would be of great help if there is a detailed documentation of list of all possible errors that MDM would receive and workaround to those error codes.

Replies

These are all good errors to report individually with Feedback Assistant, https://developer.apple.com/bug-reporting/. Be sure to attach a sysdiagnose from the device that reported the error, and the approximate time the error occurred. Try to capture the sysdiagnose soon after the error occurs.