Microsoft 365 Licence Assignment and Service Plan Enablement Failures — Conflicts, Dependencies, and Provisioning Errors
Microsoft 365 licence assignment failures occur when licences cannot be assigned to users or when specific service plans within a licence fail to provision correctly. Common causes include conflicting licence assignments, missing UsageLocation attributes, exhausted licence pools, service plan dependencies not met, or group-based licensing conflicts. Resolution involves auditing licence state via the M365 Admin Centre or PowerShell, removing conflicting assignments, ensuring prerequisites are met, and reassigning with correct service plan configuration.
Indicators
- User cannot access a Microsoft 365 service (Exchange Online, Teams, SharePoint) despite having a licence assigned in the Admin Centre
- Microsoft 365 Admin Centre shows a licence assigned but one or more service plans display as disabled or in an error state
- User receives error message: 'Your account is not licensed for this product' when attempting to use a service
- Group-based licensing shows assignment errors for users in the Azure AD / Entra ID Licenses blade
- PowerShell query returns service plan ProvisioningStatus of 'Error' or 'Disabled' for affected users
Likely causes
- Conflicting licence assignments where the same service plan is included in multiple licences assigned to the user, causing provisioning conflicts
- Service plan dependencies not satisfied — a dependent service plan (e.g. Azure Active Directory Premium) is disabled while a plan that requires it is enabled
- Group-based licensing conflict where a user is a member of multiple groups assigning overlapping or incompatible licence plans
- User's UsageLocation attribute not set in Azure AD / Entra ID, preventing any licence assignment
- Licence pool exhausted — no available licence units remain in the tenant for the target SKU
- Insufficient admin permissions to assign the specific licence SKU or to enable/disable individual service plans
- Tenant-level service plan not available for the organisation's region or subscription tier
Diagnostic steps
-
Check the user's current licence assignment state in the Microsoft 365 Admin Centre: Users > Active Users > select user > Licences and Apps tab. Identify which licences are assigned and which service plans show as disabled or in error state.Identifies which licences are assigned, which service plans are enabled or disabled, and whether any plans show an error provisioning state.
-
Verify available licence counts: Navigate to Billing > Licences in the Microsoft 365 Admin Centre and check the target SKU has unassigned units remaining.Rules out licence exhaustion as the cause of assignment failure.
-
Verify the user's UsageLocation attribute: In the Admin Centre go to Users > Active Users > select user > Account tab > Settings > Usage location. Alternatively, run: Get-MgUser -UserId user@domain.com -Property UsageLocation | Select UsageLocationA missing UsageLocation prevents licence assignment entirely; this must be set to the appropriate country code before proceeding.
-
Check for group-based licensing errors: Navigate to Azure Active Directory / Entra ID > Groups > select the relevant group > Licences, and review the list of users with assignment errors.Identifies whether the failure is driven by group-based licensing conflicts rather than direct assignment issues, and surfaces which users are affected.
-
Review specific error details in Entra ID: Users > select user > Licences, noting the exact error message or conflict description shown for the problematic licence entry.Pinpoints the exact service plan or SKU causing the conflict, enabling targeted remediation rather than blanket reassignment.
-
Query licence state via PowerShell for detailed diagnostics: Get-MgUserLicenseDetail -UserId user@domain.com | Select-Object -ExpandProperty ServicePlans | Where-Object {$_.ProvisioningStatus -ne 'Success'}Programmatically identifies all service plans not in 'Success' state for scripted bulk analysis.
Resolution path
- 1. Set the user's UsageLocation if missing: In the Microsoft 365 Admin Centre go to Users > Active Users > select the user > Account > Settings > Usage location, select the correct country, and save. Via PowerShell: Update-MgUser -UserId user@domain.com -UsageLocation 'GB'
- 2. If the licence pool is exhausted, purchase additional licence units via Billing > Purchase services, or remove licences from unused accounts to free up units before reassigning.
- 3. Remove the conflicting or errored licence from the user: Admin Centre > Users > Active Users > user > Licences and Apps > uncheck the SKU > Save changes. Wait 5 minutes for propagation.
- 4. Reassign the licence with the correct service plans enabled: Re-check the licence and ensure dependent service plans are enabled in the correct order (e.g. enable Azure AD Premium before dependent plans).
- 5. For group-based licensing errors: Remove the user from conflicting group(s), adjust which service plans are enabled in each group's licence policy to eliminate overlap, then re-add the user to the appropriate group.
- 6. After reassignment, allow up to 24 hours for full service provisioning; for urgent cases, check the Microsoft 365 Service Health dashboard to rule out platform-side outages.
Prevention
- Enforce a governance policy requiring the UsageLocation attribute to be set during user account provisioning, before any licence assignment workflow runs, to prevent assignment failures at scale.
- Use group-based licensing with clearly defined, non-overlapping licence groups — document which SKUs and service plans each group assigns to prevent conflicts as the user population grows.
- Set up licence availability alerts in the Microsoft 365 Admin Centre (Billing > Licences) to notify administrators when available units fall below a defined threshold.
- Maintain a licence assignment runbook that documents service plan dependencies for each SKU in use, so administrators enable plans in the correct order when configuring new licence types.
Tools
- Microsoft 365 Admin Centre — primary interface for licence assignment and service plan management
- Azure Active Directory / Entra ID portal — group-based licensing management and per-user licence error review
- Microsoft 365 Service Health Dashboard — confirms whether provisioning delays are caused by platform outages
- Microsoft Graph PowerShell SDK — modern replacement for AzureAD module for licence management
- Azure AD PowerShell module (AzureAD) — legacy scripted licence assignment and service plan control