Fix it now
Nobody has agreed to let the application use the permissions it is asking for, so Entra ID has no grant to issue a token against. AADSTS90094 is the narrower and more final version: those permissions can only be granted by an administrator, so the user cannot get past it however many times they retry. Somebody with the right role has to read the permission list and decide.
- Note the application name and the exact permissions shown on the consent screen or in the error detail before you change anything.
- In the Microsoft Entra admin center, open Enterprise apps, find the application, select Permissions and review the requested list line by line.
- Grant admin consent for the tenant only once you are satisfied each permission is justified by what the application does. Admin consent applies to every user in the tenant, not just the person who reported the error.
- If the application has no enterprise application entry yet, drive consent from the admin consent endpoint instead, signing in as an account whose role permits tenant-wide consent.
- If you should not be the one deciding, turn on the request workflow: Entra ID then Enterprise apps then Consent and permissions then Admin consent settings, and set users to be able to request admin consent to apps they cannot consent to. Global Administrator is the documented prerequisite for switching it on.
- Retry the sign-in. A correctly consented application should not show a consent screen again.
Prefer granting consent for one application over loosening the tenant-wide user consent policy. The policy is the main defence against a convincing-looking application harvesting mailbox access one user at a time.
If the user reaches the application without a prompt, you are done. If they still cannot, the next section covers what consent actually records and who is allowed to create it.
Why it happens
Consent is a stored object, not a setting. When someone agrees, Entra ID writes a grant linking the client application to the resource it wants to call and the specific scopes it asked for. That grant is either for one user, which is what happens when a user consents for themselves, or for the whole tenant, which is what admin consent creates. AADSTS65001 is published as DelegationDoesNotExist: the user or administrator has not consented to use the application, and the remedy Microsoft names is an interactive authorisation request for that user and resource.
Whether an ordinary user may create a grant at all is a tenant setting. Many organisations restrict user consent, either disabling it outright or permitting it only for applications from verified publishers and only for permissions classified as low impact. That is a defensible security decision and this error is its predictable side effect. It is the mechanism that stops a plausible-looking application collecting mailbox access one user at a time, and turning it fully open to make an error message go away trades that protection for convenience.
AADSTS90094 sits outside any tenant setting. Some permissions are administrator-only by definition, including anything that reads or writes data across the whole organisation, and no user consent screen is ever offered for those. AADSTS650056 points somewhere else again: it means the application is misconfigured, and Microsoft lists four distinct causes under it, so it is worth reading properly rather than assuming the first one.
No consent has ever been recorded for this application
You have this one if The application is new to the tenant, and its entry under Enterprise apps shows no granted permissions.
- Open the application under Enterprise apps and select Permissions.
- Review the requested permissions line by line and confirm each is justified by what the application does.
- Grant admin consent for the tenant, signing in with an account whose role allows it.
- Have the user retry. The consent prompt should not reappear.
User consent is switched off or restricted
You have this one if An administrator can open the application without a prompt while ordinary users are blocked.
- Check the user consent settings under Enterprise apps then Consent and permissions to see what users are permitted to do.
- Grant admin consent for this specific application, which is the targeted answer.
- Adjust the user consent policy only if it is genuinely stricter than you intended, and prefer allowing consent for verified publishers and a defined set of low-impact permissions over opening it fully.
Turning user consent fully open removes the main defence against consent-phishing applications. Grant per application instead.
The permission is administrator-only
You have this one if AADSTS90094, and no consent screen is ever offered to the user at all.
- Read the requested list on the application’s Permissions page and identify which permission forces this.
- Grant admin consent if the permission is appropriate for what the application does.
- If it is not, ask the vendor or developer whether a narrower delegated permission would do the same job.
The user declined the prompt
You have this one if AADSTS65004, usually once, for a single person who clicked away from an unexpected screen.
- Explain what the application is and what it is asking for, then have the user retry and accept.
- If several people declined the same prompt, treat that as feedback about how the application was introduced rather than as a technical fault.
The application registration is inconsistent with what it requests
You have this one if AADSTS650056, naming a resource or permission that does not appear on the application’s API permissions page.
- Compare the app registration’s API permissions with the scopes the client actually requests, and add anything missing.
- Confirm the application identifier in the request matches the configured client application identifier.
- Confirm the certificate in the request is valid, which is the cause people miss because it does not look like a consent problem.
- Confirm a service principal exists in the tenant for the resource the client names.
Microsoft lists four separate causes under this one code. Read all four before concluding it is a missing permission.
Full reference
Working out who is blocked and why
| What you observe | What it usually means |
|---|---|
| Administrators can use the application, ordinary users cannot | User consent is restricted and no tenant-wide grant exists |
| Nobody sees a consent screen at all, everyone is blocked | An administrator-only permission is being requested |
| The consent screen appears and then the sign-in fails | The user declined, or the request itself is malformed |
| The application worked until a new release | The new build asks for a scope nobody has consented to |
| The error names a resource you do not recognise | The application is requesting a token for a second interface as well |
| Users see a request-access interrupt | The admin consent workflow is on and is doing its job |
Turning on the request workflow
Rather than leaving people at an error page, the tenant can let them raise a request that routes to named reviewers. Microsoft’s documented prerequisites are an Azure account and Global Administrator to switch it on, and the path is Entra ID then Enterprise apps then Consent and permissions then Admin consent settings, where you set users to be able to request admin consent to apps they are unable to consent to.
- Choose the reviewers deliberately. Anyone who can approve a consent request can grant tenant-wide access.
- AADSTS90095 is what users see when the workflow interrupts them to ask an administrator, so it is a sign the mechanism is working rather than a failure.
- Reviewing a request is the same decision as granting consent directly; the workflow adds a record and a queue, not a safety net.
- Keep the request queue short. A backlog turns into blanket approvals, which is worse than having no workflow at all.
Before you grant anything
- Read every permission on the list, not the first two.
- Check the publisher, and whether it is a verified publisher.
- Ask whether the application needs organisation-wide read or write, or whether a narrower delegated permission would do.
- Prefer assigning the application to the group that needs it over leaving it open to everyone.
- Record who approved it and why, because admin consent is tenant-wide and quiet.
Revoking consent afterwards
Consent can be removed: take the permissions off the enterprise application, or delete the enterprise application entirely. What removal does not do is invalidate tokens that have already been issued, and those remain valid until they expire. If you are revoking consent as part of an incident rather than as housekeeping, revoke the affected users’ sessions as well, and treat the two as one action rather than two.
Where the audit trail lives
- The application’s Permissions page lists both admin-granted and user-granted permissions.
- The audit log records every consent event with the account that performed it.
- A permission that appears on the page but not in the audit log was granted before your retention window, not by nobody.
- Check both after granting consent, so the record exists before anyone needs it.
- If a permission appears that you did not grant, treat it as an incident rather than as a configuration surprise.
When a licence is the actual fix
Granting consent needs no add-on, and neither does the admin consent request workflow: Microsoft documents its prerequisites as an Azure account and a Global Administrator to switch it on, with no plan requirement. So keep the licensing question separate from this error, and do not let anyone sell you a plan to fix it. Where Microsoft Entra ID P1 does earn its place is next door: Conditional Access is a P1 capability, and it is what lets you decide which users, devices and conditions can reach an application once consent exists, which is the control most people are actually reaching for when they worry about application access. Check your entitlement first, because Microsoft 365 Business Premium, E3, E5, F1 and F3 and Enterprise Mobility + Security E3 all include P1. We can tell you which of your subscriptions already carry it and supply seats where they do not.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
AADSTS65001 |
DelegationDoesNotExist: the user or administrator has not consented to use the application. Send an interactive authorisation request for this user and resource | Microsoft Learn |
AADSTS90094 |
AdminConsentRequired: administrator consent is required, and no user consent screen will be offered | Microsoft Learn |
AADSTS65004 |
UserDeclinedConsent: the user was shown the consent prompt and declined it | Microsoft Learn |
AADSTS650056 |
Misconfigured application. The client may have listed no permissions for the resource, an administrator may not have consented, the application identifier in the request may not match the configured client, or the certificate in the request may not be valid | Microsoft Learn |
AADSTS90095 |
AdminConsentRequiredRequestAccess: the interrupt shown in the admin consent workflow when a user is told to ask an administrator | Microsoft Learn |
Confirm the fix worked
- The application’s Permissions page lists the scopes as granted for the tenant, with the granting account recorded.
- The user who reported the error signs in and reaches the application with no consent prompt.
- A second user in a different group also completes the sign-in, which confirms the grant is tenant-wide rather than per user.
- The audit log shows a consent event at the time you granted it, and nothing unexpected afterwards.
- If you turned on the request workflow, a test request reaches the reviewers you nominated.
Questions people ask about this
Is granting admin consent risky?
It can be. Admin consent applies to the whole tenant and it is quiet. Read the permission list, check the publisher, and prefer assigning the application to the group that needs it rather than leaving it open to everyone.
Does the admin consent request workflow need a paid plan?
Microsoft documents its prerequisites as an Azure account and Global Administrator to turn it on, with no plan requirement stated. Granting and revoking consent are free too. Do not buy a plan to fix this error.
What does AADSTS650056 mean?
That the application is misconfigured, and Microsoft lists four possibilities: the client listed no permissions for the resource, an administrator has not consented in the tenant, the application identifier in the request does not match the configured client, or the certificate in the request is not valid. Check all four.
How do I see what an application already has?
Open the application under Enterprise apps and select Permissions, which lists both admin-granted and user-granted permissions. The audit log records every consent event with the account that performed it.
Can I revoke consent later?
Yes. Remove the permissions from the enterprise application, or delete it entirely. Tokens already issued remain valid until they expire, so if you are responding to an incident, revoke the affected users’ sessions as well.
