Skip to content

Troubleshooting and known issues ​

What the live runs showed, what the scripts do about it, and Microsoft Learn's recovery steps where they exist.

Unless a row cites Learn, the behavior below was proven on Dell AX-760 / iDRAC 7.30, with Azure Local build 12.2690.1003.15 and maintenance image 10.2610.0.3063, on two nodes. Where a cause isn't confirmed, the page says so.

Quick reference ​

SymptomSection
ProvisionOs fails at SetupHybridComputeRP with 59015901 and the automatic resubmit
A node sits at AwaitingConnection after the claimRegistration delay
Insert fails with IDRAC.2.9.SYS458, WriteProtected=True is reported, the node boots its disk, or eject returns HTTP 500iDRAC quirks
The Arc machine has a device ID for a nameArc machine names
An unexpected adapter with a 169.254.0.x addressThe Remote NDIS adapter
The session drops during the Prepare restartRestart over WinRM
Validate complains about inbox drivers or several default gatewaysNode state after the OS install
Deploy fails with ParentResourceNotFoundDeploy on build 2690
A job that's running again still carries an errorStale error after a resubmit
The machine keeps reinstalling the maintenance environmentUSB boot loop
Prepare can't sign in to a nodePrepare fails to sign in

5901 at SetupHybridComputeRP and the automatic resubmit ​

What you see. On the first OS-install attempt, the ProvisionOs job failed at the step SetupHybridComputeRP with error 5901: "The device could not read or update its Azure registration". The job code was Retryable. On the earlier runs this happened on every node. On the 2026-11-06 run, one of the two nodes passed on its first attempt and the other hit 5901, so expect it, but not on every node.

Cause, as far as it's known. The maintenance environment's log showed HTTP 403 when it read the new Arc machine. The role that allows that read is assigned seconds after the machine is created. The most likely cause is RBAC propagation taking longer than the device's retry window, which seems to be about 20 minutes. That isn't confirmed past minute 6.

What the run does. The Ready stage re-PUTs jobs/ProvisionOs once per node, with the edge machine's existing OS profile and user details and target HCI. That's the body of Learn's retry script. The resubmit passed the step in about 2 minutes every time.

Learn's recovery. "Simplified machine provisioning currently doesn't support automatic retries from the service in case the OS installation fails." To retry, resubmit the ProvisionOs job; it can take up to 30 minutes (Learn: reattempt a failed OS provisioning).

If the second attempt also fails. Fix the cause the job names, then run the same command with -From Ready. That's a new run, so it resubmits once more. To resubmit one node by hand:

powershell
./scripts/simplified-provisioning/Wait-ZtpMachineReady.ps1 -SubscriptionId <subscription-id> -ResourceGroupName <resource-group> `
    -EdgeMachineName node-02 -RetryProvisionOs -Execute

Registration delay after the claim ​

What you see. After the claim, a node can wait up to about 45 minutes before it registers with the onboarding service (42 minutes on the 2026-11-06 run): RegisterMachine stayed NotStarted and the lifecycle stayed AwaitingConnection. Another node in the same run can take a few minutes. It recovered by itself each time.

Cause. Likely the device's retry gap. Not confirmed.

What to do. Wait. The Ready stage allows 180 minutes. If it times out, run the same command with -From Ready. If a node never registers, check its outbound access to Azure (Learn: firewall requirements). You can also collect logs. In the maintenance environment they're under /var/log/bootstrap, /var/log/provisioningextension and /var/log/bootstraprestservice; after the OS install, under C:\Windows\System32\Bootstrap\Logs (Learn: collect logs).

iDRAC quirks ​

These are iDRAC 7.30 behaviors, not generic Redfish. Mount-ZtpVirtualUsb.ps1 handles each one; you don't need to do anything. They're listed so the log lines make sense.

BehaviorWhat the script does
InsertMedia rejects the field WriteProtected=false with IDRAC.2.9.SYS458.Sets the manager attribute RFS.<n>.WriteProtected = Read Write with a Redfish PATCH on /redfish/v1/Managers/iDRAC.Embedded.1/Attributes, then inserts without the field. Eject sets it back to Read Only.
After that insert, Redfish still reports WriteProtected=True, although the share is opened for write.Warns and continues. The voucher appearing in the image proves write access.
The allowable boot override targets don't include Usb. The USB-stick slot boots as virtual floppy (vFDD).Sets the iDRAC attributes ServerBoot.1.FirstBootDevice = vFDD and ServerBoot.1.BootOnce = Enabled.
The iDRAC applies that attribute in the background. A reset before it lands boots the disk instead.Also sets the standard one-time override to Once/Floppy, and waits up to 2 minutes until the system reports it. No reset without it.
A node can boot its installed OS anyway.Watches the iDRAC log for 10 minutes after the reset. If OSE1002 appears (logged on these runs as "C: boot completed"), the stage fails for that node.
Eject can return HTTP 500 (VRM0010) just after the node writes to the image.Retries up to 6 times, 30 seconds apart.

If a run fails during Boot, check each node before you retry: the virtual media is ejected and the one-time boot override is cleared. Use Mount-ZtpVirtualUsb.ps1 -Action Status to read them and -Action Eject to eject.

Arc machine names ​

What you see. The provisioned machine (edgeMachines) has the host name, and sits in the Arc site. The Arc for Servers machine, though, is named by the service <device-id>-1. The arcMachineResourceId set at claim time is replaced. The Arc machines are in the site configuration's managed resource group, not in your resource group.

Learn's portal steps say to "Provide the machine name as the Azure Arc resource name" (Learn: provision machines). On these runs the service named the Arc machine by device ID anyway.

What to do. Use each node's arcMachineResourceId from the handoff for the cluster deployment, never the host name. The handoff reads it from the edge machine after Ready. See What to hand to the cluster deployment.

The Remote NDIS adapter ​

What you see. The iDRAC's USB link to the OS (Remote NDIS) shows up on the node as a network adapter with a 169.254.0.x address.

What to do. Nothing in Prepare: it has no gateway and Prepare leaves link-local addresses alone. In the cluster deployment, keep this adapter out of every network intent. It isn't a cluster port.

Restart over WinRM ​

What you see. Restarting a node inside a remote call kills the WinRM session before the call returns, and that reads as a failure.

What the run does. Prepare schedules the restart 10 seconds out (shutdown /r /t 10) so the call returns first. Then it waits until WinRM stops answering, waits for the node to come back, and checks that the boot time changed. It restarts at most once.

Node state after the OS install ​

What you see. After the OS install, a node has Microsoft inbox network drivers, DHCP and a default gateway on more than one port, and an empty C:\SBE.

Why it matters. Learn: "Inbox drivers are not supported for use with Azure Local" (host network requirements). Cloud deployment validation fails if it finds more than one physical adapter with a default gateway (decision 8). Learn says to install the OEM's drivers and put the SBE in C:\SBE before deployment (install drivers and firmware). Dell says its SBE can't install drivers or firmware during deployment, so they're installed before it.

What the run does. Prepare fixes all of it before Validate. See the Prepare gates. If Prepare warns "No SBE driver for <adapter>", that adapter stays on its current driver and Validate may reject it. Check that you downloaded the right SBE family for the model.

If gate 4 fails with "default gateway on ..." or "DHCP still on ...", run -From Prepare again. If it fails again, look at the adapters on the node from the BMC console.

Deploy fails with ParentResourceNotFound on build 2690 ​

What you see. On build 12.2690, an earlier cluster Deploy failed at "Deploy Arc infrastructure components" with ParentResourceNotFound. The cause was that the Arc machine names are device IDs, not host names.

What to do. This solution stops before Deploy. Before you deploy on that build, check that your deployment inputs use the arcMachineResourceId values from the handoff, and test Deploy on one environment first. No Learn recovery step is known for this.

Stale error after a resubmit ​

After a ProvisionOs resubmit, Azure keeps the earlier attempt's error in the job's properties.error, while the new attempt runs and after it succeeds. A tool that reads that field alone shows the old error as if it were current. Read the job's current status and step times, or the console, instead.

The run doesn't read properties.error: the Ready stage decides on the job's status, provisioning state and steps. Sonar's main counts the error as a failure only while the job itself reports failure; otherwise it files it under the node's previousErrors as an earlier attempt. See Reading what you see.

USB boot loop ​

Learn: when the BIOS setting Boot USB Devices First is on, the machine boots from the USB device on every restart, reinstalls the maintenance environment, and loops about every 10 minutes. Boot from USB once, then from the internal disk (Learn: USB boot loop). The run uses a one-time boot, but turn that BIOS setting off anyway.

Prepare fails to sign in ​

MessageCheck
"No sign-in to <ip> with the ZTP administrator secret"The node answers on cluster_nodes[].ip_address (DHCP reservation for the management MAC). TCP 5985 is open from the host. The node addresses are in the host's WinRM TrustedHosts list (Learn). The secret in ztp.admin_secret is the one the claim used.
"No adapter on <node> has the environment file's MAC"cluster_nodes[].mac_address is the management adapter's MAC.
"<node> reported no result within 30 minutes"Look at the node from the BMC console. The task's result is in C:\ProgramData\AzureLocalZtp\result.json.

Other Learn troubleshooting ​

Learn's troubleshooting article also covers an empty OS image list (register Microsoft.AzureStackHCI), ARM template validation failing on hciRPServiceprincipalID (first use in the subscription), and an internal server error caused by Azure Policy (region, naming or required tags). See Learn: troubleshoot simplified machine provisioning.

Released under the MIT License.