Fix Microsoft Graph PermissionScopeNotGranted Error for Eligible Roles
Question details
The user needs to resolve a PermissionScopeNotGranted error that occurs during a PowerShell request to the Microsoft Graph beta endpoint for role eligibility schedules.

- Product
- Microsoft Graph API
- Device & OS
- not provided
- Scenario
- Attempting to retrieve eligible administrator roles via PowerShell using the Microsoft Graph beta endpoint.
- Observed behavior
- The system returns a PermissionScopeNotGranted error despite the required RoleEligibilitySchedule and RoleManagement permissions appearing to be configured.
Ensure you have access to the Microsoft Entra admin center with at least the Privileged Role Administrator or Application Administrator role to review and grant API permissions.
Verify Admin Consent and Refresh the Access Token
Admin consent is strictly required for role-management scopes, and existing access tokens do not auto-update when new permissions are granted.
When dealing with directory role modifications or eligibility schedules, standard permission assignment is not enough. An administrator must explicitly consent to the API scope on behalf of the tenant.
Furthermore, access tokens are immutable. If you recently added permissions to your application, any previously acquired access tokens will not reflect the new changes until a fresh token is requested.
Navigate to the Microsoft Entra admin center, open your App Registration, and go to 'API permissions'. Verify that a green checkmark appears under the 'Status' column for 'RoleEligibilitySchedule.Read.Directory' or 'RoleManagement.Read.Directory'.
If the green checkmark is missing, click 'Grant admin consent for [Tenant Name]' and confirm the action to apply the authorization across the directory.
In your PowerShell session, force a token refresh or re-authenticate completely. Use the command 'Disconnect-MgGraph' followed by 'Connect-MgGraph -Scopes RoleManagement.Read.Directory' to acquire a newly minted token containing the updated scopes.

Validate Delegated vs. Application Permission Types
Ensure the API permissions assigned in Entra ID match the specific authentication flow you are using in PowerShell.
Discover WPS Office: Your Free Microsoft Office Alternative
While Microsoft Graph API handles complex backend automation, you still need reliable productivity software to document scripts and manage IT records. WPS Office is a lightweight, completely free alternative to Microsoft Office that offers full compatibility with Word, Excel, and PowerPoint formats without the complex subscription management.
- 1. Download WPS Office: Visit the official WPS Office website and click the Free Download button for your operating system.
- 2. Install the Suite: Run the lightweight installer and follow the prompt to set up the software in minutes.
- 3. Open Existing Documents: Instantly open and edit your existing Microsoft Word, Excel, and PowerPoint files without formatting loss.

Frequently Asked Questions
Why does my Microsoft Graph PowerShell token lack newly granted permissions?
Access tokens are immutable once issued. If you grant new permissions in Microsoft Entra ID, you must acquire a fresh token by re-authenticating (for example, by running Connect-MgGraph again) so the new scopes are included in the token payload.
What permissions are required to read role eligibility in Microsoft Graph?
Typically, you need either the 'RoleEligibilitySchedule.Read.Directory' or 'RoleManagement.Read.Directory' permissions. Because these involve sensitive directory roles, they strictly require explicit administrator consent.
How can I check the scopes currently active in my PowerShell session?
You can use the 'Get-MgContext' command in Microsoft Graph PowerShell. This command outputs the context details of your current active connection, including the specific scopes your session is authorized to use.
What is the difference between delegated and application permissions in Graph?
Delegated permissions are used when a client application accesses the API on behalf of a signed-in user. Application permissions are utilized when an application runs as a background service or daemon without a signed-in user present.




