Formerly known as Azure AI Services or Azure Cognitive Services is a unified collection of prebuilt AI capabilities within the Microsoft Foundry platform
Hello beguem,
Greetings! Thanks for raising this question in Q&A forum.
This is a very well-documented issue and you have done an excellent job of isolating it the fact that the standard Graph Search API returns results while the Retrieval API returns empty retrievalHits is the key clue here. Let me explain exactly why this happens and walk you through how to fix it.
The core reason is that the Retrieval API does not use the same index as the Graph Search API. The Graph Search API uses Microsoft Search (which indexes all content accessible to the user), while the Retrieval API uses the Microsoft 365 Copilot Semantic Index which is a separate, deeper AI-powered index that has its own sync schedule, file type restrictions, and propagation delays. Since your pay-as-you-go billing was activated only about 24 hours ago, the semantic index is very likely still syncing for your content.
Here is a step-by-step guide to diagnose and resolve this:
Step 1 — Wait for semantic index propagation to complete
This is the most likely cause given your 24-hour timeline. After pay-as-you-go or Copilot license activation, the semantic index can take anywhere from a few hours to 2–3 days to fully sync content from SharePoint.
There is nothing to configure here — simply re-test your Retrieval API call again after waiting a little longer. Many users report results start appearing after 48–72 hours of activation. If this is the issue, it will resolve itself.
Step 2 — Verify your SharePoint documents are of a supported file type
This is a very common but easy-to-miss cause of empty retrievalHits. The Retrieval API's semantic and hybrid retrieval only works with specific file types. Check that your SharePoint content falls into one of these supported formats:
-
.docxor.doc -
.pptx -
.pdf -
.aspx(SharePoint pages) -
.one(OneNote)
If your files are .xlsx, .txt, .csv, or any other format, the Retrieval API may fall back to lexical retrieval only — which can still return empty results depending on the query. The Graph Search API, on the other hand, handles all file types, which is why it returns results where the Retrieval API does not.
Step 3 — Confirm the Foundry SharePoint tool is using user identity (not managed identity)
This is critical for the Foundry sharepoint_grounding_preview tool. Application-only tokens (such as those from the Foundry project managed identity) are explicitly not supported by the Retrieval API — it requires delegated user identity (identity passthrough).
- In your Foundry project configuration, verify that the SharePoint grounding tool is set to use user identity passthrough and not the project's managed identity.
- The
Sites.Selectedand application-level permissions you granted to the managed identity are correct for other scenarios but will not work for the Retrieval API specifically — it must run under the calling user's delegated token.
Step 4 — Check file sizes
Even if the file type is supported, files exceeding the following limits will be excluded from the semantic index:
-
.docx,.pptx,.pdf— must be under 512 MB - All other supported types — must be under 150 MB
If any of the SharePoint documents you are querying exceed these limits, they will simply not appear in retrievalHits even though they show in Graph Search.
Step 5 — Narrow the search scope in Foundry
For the Foundry SharePoint grounding tool specifically, try narrowing the search scope to a specific SharePoint site or document library rather than searching broadly. This reduces the search space, improves relevance scoring, and helps surface results sooner even when the semantic index is still syncing.
Step 6 — Double-check delegated permissions for the direct Retrieval API call
Your current setup looks correct for the direct Graph Explorer call, but confirm these delegated permissions are admin-consented on your app registration:
-
Files.Read.All(delegated) -
Sites.Read.All(delegated)
Make sure you are authenticating in Graph Explorer as the licensed E5 + Copilot user and not as a service account or guest user, as the Retrieval API strictly enforces user identity.
Step 7 — If empty results persist after 72 hours, raise a support case
If after 2–3 days the Retrieval API still returns empty retrievalHits for confirmed .docx or .pdf files that are accessible to the calling user and under the size limit, this is likely a backend semantic index issue specific to your tenant. In that case:
- Go to the Microsoft 365 Admin Center or Azure Portal.
- Open a support request and include the following details: the Graph Search API returns results for the same query, Retrieval API returns HTTP 200 with empty hits, pay-as-you-go was activated on a specific date, and all documented permissions and file type requirements are met.
To summarise the most likely cause right now is simply the semantic index propagation delay after your recent pay-as-you-go activation. While you wait, verify your file types are in the supported list and make sure the Foundry tool uses user identity passthrough instead of the managed identity. These two checks together should resolve the issue for you.
If this answer helps you kindly accept the answer which will help others who have similar questions.
Best Regards,
Jerald Felix.