Autopilot Device Shows Profile Not Assigned: Find the Cause
Imported Autopilot device showing no deployment profile? Check group membership and profile assignment, fix one cause and confirm before shipping.

This playbook covers
Table of Contents
Table of contents
#Current method: shipping on hope
An imported Autopilot device that shows no deployment profile is a common source of delay. The usual current method is to re-import the hardware hash, wait, and ship anyway. That produces rework and weak evidence, because nobody records which link in the chain was broken.
The chain has four parts. The device identity must exist in the Autopilot device list. A group must contain that device. A deployment profile must be assigned to that group. The service must then evaluate the assignment and show the profile against the device. A fault at any link produces the same symptom: no profile. Documented behaviour is described in the Windows Autopilot documentation; confirm version-specific details there.
Assumption for this playbook: you use Microsoft IntuneThe KBY LexiconMicrosoft IntuneMicrosoft Intune is Microsoft's cloud-based unified endpoint management service for enrolling, configuring, securing and retiring Windows, macOS, iOS and Android devices. with a group-based profile assignment, and you hold permissions to read devices, groups and profiles. Treat any change as a change to production targeting, even in a pilot tenant.
Related reading: auto-renewal hooks for expired certificate failures covers another failure that otherwise surfaces only at enrolment time.
#Improved workflow
Replace re-import with a fixed diagnostic order. Each step consumes the output of the previous one and narrows the cause.
- Confirm the identity exists. This rules out an import failure and gives you the serial number and any group tag to work from.
- Find the targeting group. Identify which group the profile is meant to be assigned to. This tells you what membership you expect.
- Check membership. For a dynamic group, read the membership rule and compare it with the device attributes. For a static group, check whether the device object is a member.
- Check the assignment. Confirm the profile is assigned to that group, and that no exclusion removes the device.
- Fix one cause, then wait and re-read. Changing one thing at a time keeps the evidence attributable.
The trade-off is speed: a single-change discipline is slower than editing several settings at once, but it leaves a record of what worked, which supports later reuse.
#Implementation
Prerequisites: an isolated or non-production validation tenant or test device, read access to Autopilot devices, groups and profiles, and write access only if you are authorised to change group rules or assignments.
- Open the Autopilot device list and locate the device by serial number. Expected evidence: the device is listed and the profile status is blank or shows not assigned. Stop if the device is absent; that is an import problem for human review.
- Record the group tag and the device attributes the group rule uses. Expected evidence: a written note of the values.
- Open the target group. For a dynamic group, check the rule against the recorded attributes; a rule that matches a different tag or attribute explains the gap. Stop if the group type is unclear and ask the group owner.
- Open the deployment profile and review its assigned and excluded groups. Expected evidence: the target group is listed under assigned and the device is not caught by an exclusion.
- Make one correction: adjust the rule or tag, add the device to a static group, or add the missing assignment. Record the previous value first so you can restore it.
- Wait for evaluation, then refresh the device list. Dynamic group processing and profile assignment are not instant, so a short delay is expected; confirm timing expectations in the vendor documentation.
A related error worth separating from this one is covered in the 0x80180014 enrolment block, which occurs at enrolment rather than at profile assignment.
#Guardrails
- Use least privilege: read-only roles for diagnosis, and a separate approved role for group or assignment edits.
- Do not widen a dynamic rule to catch one device; a broad rule can pull unrelated devices into the profile.
- Change one setting at a time and record the old value.
- Do not store credentials or private tenant data in tickets or notes.
- If a group is shared by other profiles or policies, escalate to its owner before editing it.
#Validation
Success is observable: the device list shows a deployment profile name against the device, and the status reads as assigned. Check this before shipping, not after. Then confirm the device is still a member of the intended group and that no other device gained the profile unintentionally.
Where devices must also meet other readiness conditions, such as disk encryption key escrow, the BitLocker recovery key check script offers a complementary read-only verification.
#Common mistakes
- Re-importing repeatedly. Symptom: duplicate effort and no change. Cause: the identity was never the problem. Response: inspect group and assignment first.
- Group rule mismatch. Symptom: device missing from the group. Cause: tag or attribute differs from the rule, for example a typo. Response: correct the tag or rule and re-check.
- Assignment missing or excluded. Symptom: device is in the group but has no profile. Cause: the profile is not assigned to that group, or an exclusion applies. Response: fix the assignment.
- Checking too early. Symptom: status still blank. Cause: evaluation delay. Response: wait and re-read before making further changes.
#Recovery
If a change makes things worse, restore the recorded previous value: the original rule text, tag, or assignment list. Then re-read group membership and the profile status to confirm you are back at baseline. If another device gained or lost a profile unexpectedly, stop, restore, and escalate to the group owner with your notes. Treat this as a rollback of targeting, not of the device.

#Measurable outcome
Baseline first: count, over a review period of your choosing, how many devices showed no profile at the point of shipping, and how long diagnosis took. Success signal: no device ships without a visible assigned profile. Review this monthly, and treat any recurrence as a prompt to examine the group rule design. No improvement figures are claimed here; use your own measured baseline.
#Checklist
- Device is in the Autopilot list with serial and group tag recorded.
- Target group identified and membership checked against its rule.
- Profile assignment and exclusions reviewed.
- One change made, with previous value recorded.
- Profile name shown against the device before shipping.
- Rollback value retained until the next review.
#Prerequisites and permissions in detail
#Roles to request before starting
Request two separate role assignments through your normal access process. The first is a read-only role that can view Autopilot devices, groups and deployment profiles. The second is an edit role, held only for the duration of the change window, that can modify group rules, group membership and profile assignments. Record the approver, the start time and the expiry of the edit role in the ticket. If your tenant uses time-limited privileged access, activate the edit role only after the read-only diagnosis has named a single cause.
#Tooling for read-only evidence
The portal is enough for diagnosis, but a scripted read gives you timestamped evidence that can be attached to the ticket. If your organisation already uses the Microsoft Graph PowerShell module, a read-only session with narrowly scoped permissions is sufficient. Check the module documentation for the exact permission names before consenting, because they vary by endpoint.
1Connect-MgGraph -Scopes "DeviceManagementServiceConfig.Read.All","Group.Read.All"
2Get-MgDeviceManagementWindowsAutopilotDeviceIdentity -Filter "contains(serialNumber,'SERIAL')"
3Get-MgGroup -Filter "displayName eq 'GROUP NAME'" | Format-List Id,DisplayName,GroupTypes,MembershipRule,MembershipRuleProcessingStateReplace the placeholders with your own values and verify the cmdlets against the module version you have installed. Save the output with the date and the operator name. Disconnect afterwards with Disconnect-MgGraph.
#Expected evidence at each stage
#Dynamic group evidence
For a dynamic group, capture the full membership rule text, the processing state of the rule, and the specific attribute value on the device that the rule evaluates. A clear finding is a character-level difference between the rule and the attribute, such as a trailing space, a different case convention or a hyphen where the rule expects an underscore. Paste both strings into the ticket in a fixed-width block so the difference is visible to a reviewer.

#Static group evidence
For a static group, the evidence is a membership list that either contains the device object or does not. Be careful to distinguish the Autopilot identity from the Entra device object: group membership is evaluated against the directory object, and the two records can be present or absent independently. Note which object you checked, and its identifier, so a second engineer can repeat the check.
#Assignment evidence
Capture the list of included and excluded groups from the deployment profile, plus the order in which you viewed them. If the device appears in both an included and an excluded group, record both memberships; the exclusion is then the finding, and the fix belongs to whoever owns that exclusion group.
#Monitoring while you wait
Waiting is a step with its own discipline. Set a fixed re-read interval and a maximum wait before you begin, and write both in the ticket, for example a re-read every 30 minutes up to a stated limit agreed with the service owner. Take the limit from the vendor documentation or from your own previous observations, not from memory. At each re-read, record three things: the group membership state, the profile status against the device, and the time. Avoid making a second change between re-reads, even if the first appears to have no effect.
For batches, keep a simple tracking table with one row per serial number and columns for group tag, group, expected profile, observed profile and time of last read. A batch where only some devices resolve points to a tag or attribute inconsistency within the import file rather than a profile fault, so sort the table by group tag before concluding anything.
#Realistic failure symptoms and what they suggest
- Some devices in a batch show a profile and others do not. Compare group tags across both sets. A mixed-case or misspelt tag in part of the import file is the likeliest cause.
- The device is in the group but the profile column stays blank after the agreed wait. Re-check the assignment and exclusions, then check whether another profile type or policy targets the same group and conflicts with your expectation.
- Group membership changes back after you correct it manually. A dynamic rule is likely overriding a manual addition, because dynamic groups do not hold manual members. Stop and confirm the group type.
- Rule processing state shows as paused or failed. Do not edit the rule further. Escalate to the group owner or directory administrators with the state text exactly as displayed.
- Profile appears on the wrong device. Treat as a targeting incident. Capture membership, then follow the recovery section.
#Change-control records
Even a single-attribute correction is a production targeting change, so keep a record that a reviewer can follow without asking you questions. Include these fields in the change ticket:
- Serial number or batch reference, and the group tag as originally imported.
- The group, profile and exclusion list inspected, with identifiers.
- The single cause identified, stated in one sentence.
- The exact previous value of the field you changed, and the new value.
- The name of the approver and the group owner informed.
- Time of change, each re-read time, and the final observed profile status.
- The rollback value and the date it may be discarded.
Where the change touches a group shared with other policies, attach the group owner’s written acknowledgement before you edit it.
#Escalation thresholds
Escalate rather than continue when any of the following is true:
- The device is absent from the Autopilot list. This is an import or ownership matter, not a targeting one.
- The group type is unclear, or the group is shared by other profiles or policies.
- Rule processing state indicates a fault rather than a delay.
- The profile has not appeared after the maximum wait you recorded at the start.
- More than one device outside your scope gained or lost a profile.
- You would need to widen a rule or remove an exclusion to make the device match.
State in the escalation what you checked, what you changed, what you observed and what you are asking the recipient to decide.
#Safe rollback actions
Order rollback from least to most disruptive. First restore the single value you changed, using the text saved in the ticket rather than retyping it. Second, if you added a device to a static group, remove only that device. Third, if you added an assignment to a profile, remove only that assignment entry. After each action, re-read membership and profile status at your agreed interval and compare them with the baseline captured before the change. Do not delete the profile, the group or the Autopilot identity as a rollback step; those actions are harder to reverse and are outside the scope of this diagnosis. Close the ticket only when the post-rollback reading matches the baseline and the group owner has been told the outcome.
Next safe decision: if the profile still does not appear after the documented delay, stop changing settings and escalate with your notes. Also note platform minimums can change; see the Intune macOS 15 deadline for an example of version-sensitive change.
Evidence trail
Sources and verification
Primary documentation and external technical references used in this article.
About this page
Credited to
Dates
Published
Corrections
No corrections are listed for this page. Some review sweeps corrected pages without naming each one; those are in the corrections log.
Read-only scripts
- Windows devices with no BitLocker recovery key in Entra IDMicrosoft Entra ID, Windows
- Intune devices that haven't synced in N daysMicrosoft Intune
- Mailboxes forwarding to external addressesExchange Online
- BitLocker status of every volume on this PCWindows
Upcoming deadlines
- Intune moves to macOS 15 and laterQ4 2026
- SAP SuccessFactors provisioning: move from basic auth to workload identityNovember 2026
- Intune November release: JIT registration reminder at APNs renewal and automatic JIT for eligible tenantsNovember 2026
Explore KBY
The KBY Brief
A short email about twice a week with new runbooks, configuration traps and fixes from KBY Technologies.
SubscribeRelated articles
Zero-Touch & Automation
OneDrive Known Folder Move Failures: A Zero-Touch Fix
KFM redirection silently fails from GPO conflicts and auth races; here is the registry-driven detection and remediation script that fixes it unattended.
Enterprise IT Management
Microsoft 365 Group Licensing: Fixing MutuallyExclusiveViolation
How to find the conflicting service plans behind a MutuallyExclusiveViolation, remove the overlap safely, and reprocess users in Microsoft 365 group-based licensing.
Systems Engineering
Linux Disk Full but df Shows Free Space: Inode Exhaustion Fix
How to tell inode exhaustion from deleted-but-open files when Linux reports 'No space left on device' although df shows free space, and how to recover safely.
Discover more
Lexicon Definitions
Learn More About KBY
About KBY
Learn about our mission, how our content is produced, and how we handle corrections.
Why Trust KBY
How KBY content is produced, what is checked automatically, and how errors are corrected.
The KBY Brief
A short email about twice a week with new runbooks, configuration traps and fixes from KBY Technologies.
Was this useful?
Reports go to the site owner and are used to correct pages. Corrections are listed at /corrections.
Operate smarter, with fewer recurring tickets.
Receive new operational playbooks, incident-prevention guidance, automation scripts and recovery runbooks.
Comments
Add a thoughtful note on Autopilot Device Shows Profile Not Assigned: Find the Cause. Comments are checked for spam and held for moderation before appearing.