Building custom solutions that extend, automate, and integrate Microsoft 365 apps.
Please note that Q&A forum is a public platform, and moderators will modify the question to hide personal information in the description. Kindly ensure that you hide any personal or organizational information the next time you post an error or other details to protect personal data.
Hi peted
I have conducted some research and to directly answer your questions:
1/Has anyone observed Graph selectively suppressing @microsoft.graph.downloadUrl for app-only tokens while still returning other file metadata?
Yes, this is a known pattern. The @microsoft.graph.downloadUrl field is not standard metadata, it's a pre-authenticated, short-lived URL that Graph generates on-demand and evaluates separately from fields like id or name. It requires no Authorization header when accessed directly, meaning the service must actively grant it like a capability. Tenant-side enforcement layers can suppress it before Graph emits the field, even when Files.ReadWrite.All is fully consented.
Link reference: https://learn.microsoft.com/en-us/graph/api/driveitem-get-content?view=graph-rest-1.0&tabs=http
2/Are there documented tenant-level configurations that suppress this field for app-only callers?
You can read here for more information:
Sensitivity labels with encryption: Files uploaded with a sensitivity label that applies encryption cannot have their content processed by SharePoint, disabling features like eDiscovery, DLP, and search. Download URL generation falls into the same category. An app-only caller without decryption rights may receive no URL field at all rather than an error. As states in this LINK.
MarkNewFilesSensitiveByDefault: Technically, SharePoint can be configured to treat all files as sensitive until DLP scanning completes, blocking access until then. App-only callers can be treated as external in this context. If Set-SPOTenant -MarkNewFilesSensitiveByDefault BlockExternalSharing was toggled around April 24, it matches the symptom exactly metadata accessible, download URL suppressed.
Conditional Access on service principals. Entra ID CA policies can now target service principals. If one was applied to your app registration restricting download-capable access, Graph can suppress the URL silently. Check the Entra sign-in logs under "Service principal sign-ins" for CA policy outcomes.
3/ Was there any change to Microsoft Graph or default tenant configurations around April 24, 2026?
Based on my research, nothing confirmed from public documentation at that date. You can check this via Microsoft 365 Message Center and the Microsoft 365 Service Health Dashboard.
4/ For resold tenants without direct admin center access, what is the recommended escalation path?
In this context, you can create the Azure support ticket via Azure Portal
How to open a support ticket:
- Go to the Azure Portal.
- Select Create a support request.
Thank you for your patience, and I hope the support team can get this unblocked for you quickly.
I hope this helps.
Note: Please follow the steps in [our documentation] to enable email notifications if you want to receive the notification for this thread.