IntuneDeep dive

Windows Autopilot error codes (0x800705B4, 0x801C03EA, 0x80070774…): a quick reference

Look up a Windows Autopilot failure: what 0x800705B4, 0x801C03EA, 0x80070774, 0x81039001, event 807, import error 808 and more mean, the usual cause and the first check.

Autopilot failures surface as a failed step on the Enrollment Status Page (ESP), an event in the Autopilot log or an import error in the Intune admin center. This quick reference collects the codes and messages Microsoft documents for Windows Autopilot, from TPM attestation and enrollment during OOBE to hash import, hybrid join, the Intune Connector for Active Directory, the ESP and Autopilot Reset, each with the usual cause and the first check. Plain MDM enrollment and Entra join codes are in the Windows enrollment error codes quick reference.

Codes in this quick reference

  • 0x800705B4 Securing your hardware (Failed: 0x800705b4): timeout, usually a device without TPM 2.0ESP (Securing your hardware)
  • 0x801C03EA Registering your device for mobile management (Failed: 3, 0x801C03EA): TPM attestation failedESP (Registering for mobile management)
  • 0x81039001 E_AUTOPILOT_CLIENT_TPM_MAX_ATTESTATION_RETRY_EXCEEDEDESP (Securing your hardware)
  • 0x81039023 TPM attestation failure on Windows 11ESP (Securing your hardware)
  • 0x81039024 TPM attestation failed: known TPM vulnerabilities detectedESP (Securing your hardware)
  • 0x80070490 TPM attestation failure on AMD platforms with ASP firmware TPMESP (Securing your hardware)
  • Something happened, and TPM attestation timed out.ESP (Securing your hardware)
  • Event 171 AutopilotManager failed to set TPM identity confirmed (event 172 follows)Autopilot event log (ModernDeployment)

+ 35 more codes in the tables below.

How this guide is organised: How to read these codes → TPM attestation → Joining and enrolling during OOBE → Profile download and registration → Hardware hash import → Hybrid join and the Intune Connector for Active Directory → Enrollment Status Page and Autopilot Reset → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. TPM attestation. 3. Joining and enrolling during OOBE. 4. Profile download and registration. 5. Hardware hash import. 6. Hybrid join and the Intune Connector for Active Directory. 7. Enrollment Status Page and Autopilot Reset. 8. How to verify a fix. Toolbox: 0x800705B4, 0x801C03EA, 0x80070774, ODJConnectorUI.log, Get-Tpm.1How to read thesecodes2TPM attestation3Joining and enrollingduring OOBE4Profile download andregistration5Hardware hashimport6Hybrid join and theIntune Connector fo…7Enrollment StatusPage and Autopilot…8How to verify a fixTOOLBOX0x800705B40x801C03EA0x80070774ODJConnectorUI.logGet-TpmHow this guide is organised: How to read these codes → TPM attestation → Joining and enrolling during OOBE → Profile download and registration → Hardware hash import → Hybrid join and the Intune Connector for Active Directory → Enrollment Status Page and Autopilot Reset → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. TPM attestation. 3. Joining and enrolling during OOBE. 4. Profile download and registration. 5. Hardware hash import. 6. Hybrid join and the Intune Connector for Active Directory. 7. Enrollment Status Page and Autopilot Reset. 8. How to verify a fix. Toolbox: 0x800705B4, 0x801C03EA, 0x80070774, ODJConnectorUI.log, Get-Tpm.1How to read these codes2TPM attestation3Joining and enrolling during OOBE4Profile download and registration5Hardware hash import6Hybrid join and the Intune Connector forActive Directory7Enrollment Status Page and Autopilot Reset8How to verify a fixTOOLBOX0x800705B40x801C03EA0x80070774ODJConnectorUI.logGet-Tpm
At a glance: how this guide is organised · 8 sections · 5 key settings and tools

How to read these codes#

  • ESP device preparation. The steps run in order: Securing your hardware (where self-deploying and pre-provisioning do TPM attestation), Joining your organization's network, Registering your device for mobile management, then Preparing your device for mobile management. Fix the first step that shows a code; later ones only say "Previous step failed".
  • Autopilot event log. Applications and Services Logs › Microsoft › Windows › ModernDeployment-Diagnostics-Provider › Autopilot records profile download and TPM events.
  • Other logs. User Device Registration › Admin (join), DeviceManagement-Enterprise-Diagnostics-Provider › Admin (enrollment and policy), and on the connector server Microsoft › Intune › ODJConnectorService (older builds used a top-level ODJ Connector Service log).
  • Intune admin center. Import results and device records live under Devices › Windows › Device onboarding › Enrollment › Windows Autopilot › Devices.

At the failure screen, use Collect logs (if the ESP profile allows it) or press Shift+F10 and run:

Command Prompt
mdmdiagnosticstool.exe -area Autopilot;TPM -cab C:\autopilot.cab
reg query HKLM\SOFTWARE\Microsoft\Provisioning\Diagnostics\Autopilot

In PowerShell, quote the area list ('Autopilot;TPM'). Install-Script -Name Get-AutopilotDiagnostics on another PC, then Get-AutopilotDiagnostics -CABFile C:\autopilot.cab, summarises the cab. In the registry, CloudAssignedTenantDomain is the tenant the device is registered to, TenantMatched 0 means the user signed in from another tenant, and IsAutopilotDisabled 1 means no registration or a failed profile download. On Windows 11 user-driven deployments, Ctrl+Shift+D opens the diagnostics page when the ESP profile enables it. Autopilot device preparation doesn't use the ESP; see the device preparation guide for its failures.

TPM attestation (self-deploying and pre-provisioning)#

CodeMeaningUsual causeFirst check
0x800705B4General timeout, shown as "Securing your hardware (Failed: 0x800705b4)"No physical TPM 2.0: a VM with a virtual TPM, or TPM 1.2Get-Tpm and the specification version in tpm.msc; pre-provisioning isn't supported on VMs
0x801C03EATPM attestation failed, so the Entra join with a device token failed: "Registering your device for mobile management (Failed: 3, 0x801C03EA)"A TPM that supports 2.0 but hasn't been upgraded to it; or the device is in two groups with different Autopilot profilesTPM firmware; the device's profile assignments
0x81039001E_AUTOPILOT_CLIENT_TPM_MAX_ATTESTATION_RETRY_EXCEEDED, at Securing your hardwareIntermittent attestation failureRetry; a badly wrong clock also breaks attestation, so run w32tm /resync /force at OOBE
0x81039023TPM attestation failure on Windows 11Older Windows 11 buildsFor Windows 11 21H2, KB5013943 (May 2022) or later
0x81039024Attestation refused because the TPM has known vulnerabilitiesOutdated TPM firmwareTPM firmware update from the PC maker
0x80070490TPM attestation failure on AMD platforms with ASP firmware TPMOlder AMD firmwareFirmware release notes from the device maker
"Something happened, and TPM attestation timed out."Attestation timeoutInfineon SLB9672 TPM with firmware 15.22 and an EK certificateFirmware update from the OEM
Event 171 (then 172)"AutopilotManager failed to set TPM identity confirmed. HRESULT=…", followed by "failed to set Autopilot profile as available"A TPM attestation problem in self-deploying modeThe HRESULT in the event; then the rows above

Joining and enrolling during OOBE#

Code or messageMeaningUsual causeFirst check
0x80180014Enrollment refused; ETW shows "Enrollment blocked for AP device by SDM One Time Limit Check"A reused self-deploying or pre-provisioned device whose Intune record remains; or Windows (MDM) blocked by a platform restrictionUnblock device on the Autopilot device, or delete the Intune record (0x80180014 guide)
0x80180018MENROLL_E_USERLICENSE on the "Something went wrong" pageMissing licence, or too many devices for the userThe user's licences and devices (0x80180018 guide)
"Can't connect to the URL of your organization's MDM terms of use."Usually a licensing problemUser without an Intune, EMS or Microsoft 365 licenceAssign the licence, then restart OOBE
0x80180022"Autopilot device enrollment failed with error HRESULT = 0x80180022"The device runs Windows HomeUpgrade to Pro or higher
0xc1036501Automatic MDM enrollment impossible: multiple MDM configurations in Microsoft Entra IDMore than one MDM app has the user in scopeMobility (MDM and MAM) in Microsoft Entra ID: keep only Microsoft Intune in scope
0x801C03F3Pre-provisioning error screen: Entra can't find the device objectThe Entra object created at import was deleted manuallyRemove the device from Entra ID, Intune and Autopilot, then re-register it
"Something went wrong. OOBEIDPS."The identity provider couldn't be reachedProxy or firewall blocking sign-inAutopilot networking requirements; test from Shift+F10
"That username looks like it belongs to another organization. Try signing in again or start over with a different account"Tenant mismatchThe user's tenant differs from the one the device is registered toCloudAssignedTenantDomain and TenantMatched in the Autopilot registry key
"Preparing your device for mobile management" fails on a VMVM too smallFewer than 2 processors or less than 4 GB of memoryThe VM's settings

Profile download and registration (Autopilot event log)#

EventMeaningUsual causeFirst check
100"Autopilot policy [name] not found."Usually temporary while the profile downloadsIf it persists, the registration and network access
807ZtdDeviceIsNotRegisteredHash not uploaded, or no profile assignedSearch Autopilot devices by serial number; Profile status
809"ZtdDeviceHasNoAssignedProfile - Assigned profile does not exist."The assigned profile was deleted without cleanupAssign another profile, then re-enroll
815"ZtdDeviceHasNoAssignedProfile - No profile assigned to the device, and no default profile found in the tenant."No profile targets the deviceProfile assignment to a group that contains the device
908SerialNumberMismatch / ProductKeyIdMismatchSerial number or product key in Autopilot doesn't match the hardwareRe-register the device
163"AutopilotManager determined download isn't required and the device is already provisioned."A profile is already on the device (image not generalized)Reset the device, or capture images with sysprep /generalize
"Fix pending" / "Attention required"Portal status after "We've detected a hardware change on this device."Hardware change such as a new motherboardDeregister and re-register the device

Hardware hash import#

Code or messageMeaningUsual causeFirst check
806 - ZtdDeviceAlreadyAssigned"Device is already registered to the same Tenant."The device is already registered, or an Intune record existsSearch by serial number, remove the old record, re-import
808 - ZtdDeviceAssignedToOtherTenantShown with "Internal error"A registration or Intune record for the device already exists; the name points to another tenantSearch Autopilot Devices by serial number and delete any record. If your tenant has none, ask the previous owner or reseller to deregister it, or open a Microsoft support request with the device CSV, original proof of ownership (no screenshots) and Mdmdiagnosticstool.exe -area Autopilot -cab c:\out.cab
"Cannot convert the literal '[DEVICEHASH]' to the expected type 'Edm.Binary'"HTTP 400 in a network trace when Import does nothingThe hash isn't padded Base64, or the CSV was edited outside NotepadTest-decode the hash with [System.Convert]::FromBase64String() and fix its = padding as Microsoft's FAQ describes

Hybrid join and the Intune Connector for Active Directory#

Note: Some rows come from Microsoft's Windows Autopilot known issues page, where statuses change; re-check it before acting. If enrollments started failing with the connector, Microsoft's FAQ says to run version 6.2501.2000.5 or later and make sure the legacy connector isn't still in use.

Code or messageMeaningUsual causeFirst check
0x80070774"Something went wrong. Confirm you are using the correct sign-in information…": the domain controller can't be found or reachedAssign user on a hybrid profile; the Autopilot object's Entra device deleted; the connector in a different domain from the targeted oneUnassign the user; re-import the hash; the connector's domain; event 30132
0x80004005Hybrid join deployments time out (known issue added February 2026)Devices without the fixing updateKB5065789 (25H2), KB5065426 (24H2) or KB5070312 (23H2) or later (guide)
0x800706FDPre-provisioning fails with MDM PolicyManager: Merge string, Area: (UserRights), Policy: (DenyLocalLogOn), Result: (0x800706FD) The trust relationship between this workstation and the primary domain failed.A policy needs a domain controller to resolve a conflict during the technician flow (known limitation)Don't assign such policies to the technician flow, or pre-provision with line of sight to a DC (guide)
Event 30132"Failed to get the ODJ Blob. The ODJ connector does not have sufficient privileges to complete the operation"OU permissions not delegated to the connectorDelegate creating and deleting computer objects on the OU
0x8007202F"A constraint violation occurred."The computer account limit for the OUODJConnectorUI.log; increase the OU's computer account limit
"The MSA account couldn't be granted permission to create computer objects in the following OUs"Connector setup couldn't delegate the OUInstalling admin lacks permissions, or the OU in ODJConnectorEnrollmentWizard.exe.config doesn't existODJConnectorUI.log under C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorEnrollmentWizard
"Cannot start service ODJConnectorSvc on computer '.'"The service can't start as the managed service accountDC replication lag after the MSA was created, or a policy blocking Log on as a serviceWait for replication, then Configure MSA (gMSA guide)
SeLogonAsServicePrivilegeMissingPre-check failure with your own gMSAThe privilege hasn't reached the connector host yetBuild 6.2604.2000.3 or later with SkipByoMsaPrivilegeCheck
"MSA account <accountName> is not valid"Connector 6.2501.2000.5 created the MSA but couldn't read it backDC replication delay, or the user in another domainUpgrade to build 6.2504.2001.8 or later
"Navigation to the webpage was canceled" / "Can't connect securely to this page"Connector sign-in page failedRequired Intune URLs blocked, or TLS 1.0/1.1 because PKCS is disabledRequired URLs; reg.exe delete "HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS" /v Enabled /f

Enrollment Status Page and Autopilot Reset#

Code or messageMeaningUsual causeFirst check
InstallationState = 4A Win32 app tracked by the ESP failed, so the ESP stops installing appsInstall command, detection rule or download problemIME logs; HKLM\SOFTWARE\Microsoft\Windows\Autopilot\EnrollmentStatusTracking (ESP guide)
"Another installation is in progress, please try again later"Two installs collided in TrustedInstallerLine-of-business MSI and Win32 apps mixed in the ESP, or the Teams Machine-Wide Installer from Microsoft 365 AppsDeliver ESP apps as Win32 apps only
Event 2800"The following URI has triggered a reboot: (…)"A policy forcing a reboot during the ESPThe URI in the DeviceManagement-Enterprise-Diagnostics-Provider log; target that policy to users so it applies later
0x80070032ERROR_NOT_SUPPORTED in the logs: Autopilot Reset stops immediatelyWindows Recovery Environment (WinRE) not configured or enabledreagentc.exe /enable (device actions guide)
"Ran into trouble. Please sign in with an administrator account to see why and reset manually."Autopilot Reset failed immediatelyUsually WinRE (see the row above)Sign in as an administrator; reagentc /info
"Autopilot reset ran into trouble. Could not find the recovery environment"Reset couldn't locate WinREA recovery environment problemreagentc /info; if WinRE is fine, enter administrator credentials to continue

Autopilot Reset doesn't support Microsoft Entra hybrid joined devices; those need a full wipe.

How to verify a fix#

  1. Deployment: the ESP completes and the user reaches the desktop; for pre-provisioning, the technician flow ends on the green screen with Reseal.
  2. Autopilot log: event 153 (ProfileState_Unknown to ProfileState_Available) and 161, with no new 171, 807, 815 or 908.
  3. Intune: the Autopilot device shows Profile status Assigned, and the Windows Autopilot deployment report shows the run as successful.
  4. Join: dsregcmd /status shows AzureAdJoined : YES, plus DomainJoined : YES for hybrid.
PowerShell
Get-WinEvent -LogName 'Microsoft-Windows-ModernDeployment-Diagnostics-Provider/Autopilot' -MaxEvents 200 |
    Where-Object Id -in 153, 161, 171, 172, 807, 809, 815, 908 | Select-Object TimeCreated, Id, Message
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Provisioning\Diagnostics\Autopilot' |
    Select-Object CloudAssignedTenantDomain, TenantMatched, IsAutopilotDisabled

References#

Revision history: Oct 2026 — re-checked against Microsoft Learn: 3 corrections.

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)