You unboxed the new Snapdragon Copilot+ fleet, started Autopilot, and watched the Enrollment Status Page crawl — then fail at “Installing apps” or stall on “Joining your organization’s network” until it times out. The hardware is fine; the provisioning sequence is tripping over x64-era apps and policies.
ARM64 devices use the same Autopilot pipeline as Intel laptops, but x86-only installers run slowly under emulation and exceed ESP timeouts, and driver packages often assume x64-only hardware IDs. Neither surfaces in a two-machine pilot — both surface at scale.
This guide walks the failure points in technician order: reading ESP logs to find the real blocker, fixing app and driver packages for ARM64, adjusting timeouts and TPM behavior, and recovering a stuck machine without reimaging.
Why this happens
- x86-only apps exceeding ESP timeouts under emulation: Legacy x64 installers run through Prism emulation, often 2-3x slower. The ESP timeout expires while the installer is still legitimately working, and Autopilot records a failure.
- Driver packages with x64-only INF assumptions: A driver uploaded to Intune that targets only x64 hardware IDs silently fails to match on ARM64 devices, leaving devices without a driver the ESP step was waiting on.
- TPM attestation running slow on first boot: ARM firmware initializes the TPM and attestation chain differently; on some Snapdragon platforms the first attestation takes long enough to collide with Autopilot’s expected timing, producing intermittent “something went wrong” errors.
- Win32 detection rules that never resolve on ARM: Detection scripts checking x86 Program Files paths or x64 registry hives return “not installed” forever, so Intune retries the install in a loop until the ESP fails.
- Network-dependent steps on a slow first connection: Wi-Fi-only ARM laptops sometimes associate slowly on first boot; steps assuming instant connectivity (domain join, certificate enrollment) time out before the link is stable.
- White-glove flows hitting the same blocks: Pre-provisioning failures look identical to user-driven ones; the same fixes apply to both.
- Mismatched firmware revisions: Some units ship older UEFI firmware that enumerates devices differently, shifting which step fails. Compare firmware versions before assuming randomness.
How to fix it
Work through these in order — diagnose first, then act.
Fix 1: Read the ESP logs and identify the actual failing step
Autopilot’s error screen is vague by design. The real diagnosis lives in the local provisioning logs, which name the exact app, policy, or script that failed. Never change the deployment profile until you have read them.
- On the failed machine, press Shift + F10 at the error screen to open a command prompt (this works during OOBE on most Autopilot profiles).
- Run
mdmdiagnosticstool.exe -area Autopilot;TPM -cab c:\autopilot.cabto collect provisioning diagnostics. - Extract the CAB on a technician machine and open the Autopilot logs — find the first step marked failed, not the timeout message that follows.
- Note the exact app GUID or policy name; cross-check it under Devices > the device > Managed apps in Intune. If the machine will not reach the command prompt, a safe-mode boot on your ARM laptop can get you to a recovery shell.
- Classify the failure: app install hang, detection rule loop, TPM attestation error, or policy conflict — the remaining fixes each target one class.
Fix 2: Rebuild failing apps as ARM64-native packages
Once you know which app fails, the fix is almost always packaging: replace the x86 installer with an ARM64-native build, or fix detection so it resolves on ARM64. Emulated installs are the number one ESP killer on Snapdragon fleets.
- In Intune, open the failing app’s properties and check whether an ARM64 installer exists from the vendor — most major enterprise apps now ship one.
- If only x86 exists, extend the install timeout in the assignment — raise the restart grace period and the Win32 install timeout so emulation has room to finish.
- Fix the detection rule: point file/registry checks at ARM64 paths (
C:\Program Files, notC:\Program Files (x86)) or use a custom detection script that handles both architectures. - Move long or emulation-heavy installs out of the ESP blocking phase — assign them as required but non-blocking, so provisioning completes while the app installs in the background.
- Re-run provisioning on one test device with the fixed package before touching the fleet profile.
Fix 3: Correct the driver and firmware layer for ARM64
Driver steps fail on ARM when the uploaded package only matches x64 hardware IDs, or when firmware is too old to enumerate a component the policy expects. Validate both against the failing hardware.
- Confirm the failing units’ model and firmware in Intune > Devices > Hardware and compare against units that provisioned successfully.
- Update UEFI firmware from the OEM (Dell, HP, Lenovo support pages) — firmware fixes for TPM attestation timing on Snapdragon platforms ship regularly.
- Re-upload driver packages with ARM64-capable INFs; remove x64-only driver assignments from the ARM group so they cannot block matching.
- If a driver step hangs, check whether Windows Update already delivered a working driver — if so, delete the Intune driver assignment for the ARM group and let WU handle it.
- After firmware updates, reset the device and re-run Autopilot; do not judge the fix on a machine still holding the old TPM attestation state.
Fix 4: Adjust ESP timeouts and blocking behavior for ARM reality
Default ESP timeouts were tuned for fast x64 installs. ARM emulation and first-boot attestation legitimately take longer — without headroom, healthy installs get marked failed.
- In Intune > Devices > Windows enrollment > Enrollment Status Page, open the ESP profile and raise the error timeout to 120 minutes for the ARM group.
- Reduce ESP-blocking apps to the true minimum (security agent, VPN client); move everything else to non-blocking required assignments.
- Enable “Allow users to collect logs” so failures produce diagnostics instead of a dead end.
- For white-glove flows, verify the technician ESP profile has the same relaxed timeouts — it is a separate profile, often left at defaults.
- Re-test on the slowest unit; if it passes, the timeouts suit the whole group.
Fix 5: Stabilize first-boot networking and TPM attestation
Intermittent failures that move between steps are usually timing: Wi-Fi association, TPM attestation, and app installs racing on first boot. Slow the race down.
- For Wi-Fi-only provisioning, use a wired USB-C Ethernet adapter during initial provisioning where possible — it removes association timing from the equation entirely.
- In the ESP profile, confirm “Block device use until all apps and profiles are installed” matches your intent; for troubleshooting, temporarily allow blocking-apps-only and observe.
- Clear stale TPM state on repeatedly failing units:
tpm.msc→ Clear TPM (orClear-Tpmin PowerShell from the Shift+F10 prompt), then reboot and re-run enrollment. - Check the date and time in UEFI — attestation fails outright on a wrong clock, common on devices that sat in a warehouse.
- After a clean attestation, provisioning usually completes in one pass; if it still fails, the blocker is back in the app layer (Fix 2).
Fix 6: Recover a stuck device without reimaging
A machine parked at a failed ESP screen is not bricked. You can usually reach a working desktop, fix the offending item, and complete enrollment — reimaging is the last resort.
- At the failure screen, press Shift + F10 — or simpler, reboot and let Autopilot retry; most profiles allow a retry without wiping.
- To bypass the ESP for technician access: in the Shift+F10 prompt, create the registry value
HKLM\SOFTWARE\Microsoft\Enrollments\Status\SkipUserStatusPage(DWORD = 1) on test machines only — never in production profiles. - Once at the desktop, open Settings > Accounts > Access work or school, verify the Intune enrollment state, and manually install or remove the app that failed.
- Run
dsregcmd /statusto confirm Azure AD join state and re-runmdmdiagnosticstoolto confirm the failing step now passes. - For units that repeatedly need rescue, check whether a background workload is starving the installer — runaway live captions transcription or an NPU workload like AnythingLLM failing to detect the NPU can consume CPU during provisioning. Disable such startup items in the image.
Closing
Autopilot failures on ARM laptops are almost never ARM problems — they are x86-era packages, tight timeouts, and slow first-boot timing colliding with a strict sequence. Read the logs, fix packaging for ARM64, give the ESP realistic timeouts, and most fleets go green without touching hardware.
