mac ADE enrollment fails during setup assistant due to incorrect date or time zoneSolved

Participant
Discussion
3 months ago Mar 24, 2026

We are trying to enroll new macs through apple business manager and hexnode automated device enrollment during setup assistant. The devices are synced to abm and hexnode, but during oobe the enrollment stops with an “Enrolling with management server failed” error. the issue seems to be the mac using the wrong default time zone before enrollment is completed. Location services is not granted yet, so the mac does not automatically switch to the user’s local time zone. This makes zero-touch deployment difficult for devices shipped to users in another region. is there a way to set the correct default time zone before ADE enrollment completes, or handle this through hexnode?

Replies (1)

Marked SolutionPending Review
Participant
3 months ago Mar 26, 2026
Marked SolutionPending Review

Hey @_janet, we dealt with this exact nightmare last month. because automated device enrollment relies entirely on apple’s setup assistant, the mac must have a valid system date and time for the initial certificate validation to succeed. If the clock is off, it throws that exact “enrolling with management server failed” error.

the hard truth is hexnode (or any mdm) cannot run remote actions or push time zone policies until the device is actually enrolled. There is no mdm-side setting to force a time zone correction during this pre-enrollment stage.

Here is the workaround we use when this happens:

  1. Unassign the mac from the mdm server in apple business manager and sync the ade account in hexnode.
  2. Restart the mac and run through setup assistant normally to reach the local desktop.
  3. Manually correct the date & time and location services under system settings.
  4. Go back into abm, reassign the mac to the hexnode mdm server, and sync again.
  5. Trigger the enrollment flow manually now that the clock is right.

it ruins the true zero-touch experience, but until apple fixes how setup assistant pulls network time pre-enrollment, this is the only way around it.

Save