Return to Service with App Preservation issue

We are implementing the Return to Service (RTS) with App Preservation flow.

During testing, we were able to successfully fetch the Bootstrap Token as part of the ADE enrollment process. However, when attempting to initiate the Return to Service command with App Preservation enabled, the following error was returned:

[
  {
    "ErrorCode": 12089,
    "ErrorDomain": "MDMErrorDomain",
    "LocalizedDescription": "Could not erase device.",
    "USEnglishDescription": "Could not erase device."
  },
  {
    "ErrorCode": 66002,
    "ErrorDomain": "MDMBootstrapTokenErrorDomain",
    "LocalizedDescription": "Failed to generate LAContext for bootstrap token",
    "USEnglishDescription": "Failed to generate LAContext for bootstrap token"
  }
]

Below is the sample request (with dummy data). The actual request contained valid values in all fields:

<?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>Command</key>
		<dict>
			<key>RequestType</key>
			<string>EraseDevice</string>
			<key>ReturnToService</key>
			<dict>
				<key>Enabled</key>
				<true />
				<key>WiFiProfileData</key>
				<data>WiFiProfileData</data>
				<key>BootstrapToken</key>
				<data>BootstrapTokenValue</data>
				<key>MDMProfileData</key>
				<data>MDM Profile Data</data>
			</dict>
		</dict>
		<key>CommandUUID</key>
		<string>3670</string>
	</dict>
</plist>

I have experience a similar issue and the reason was due to incorrect or mismatch in the BootstrapToken. I think using the base64 encoded token would probably solve this.

Return to Service with App Preservation issue
 
 
Q