Formerly known as Azure AI Services or Azure Cognitive Services is a unified collection of prebuilt AI capabilities within the Microsoft Foundry platform
Hello Matias,
Greetings! Thanks for raising this question in the Q&A forum.
The role Microsoft specifies as required for a project's managed identity to perform Memory Store operations, including the server-side chat-model inference call used for extraction, is Foundry User assigned to the managed identity at the resource (account) scope, not Cognitive Services OpenAI User. Since you already confirmed the managed identity holds Foundry User with its wildcard Microsoft.CognitiveServices/* data action, and adding Cognitive Services OpenAI User on top of that still produced the same instant 403, this rules out a simple missing-role misconfiguration on your side. The behavior you're describing, a principal-specific rejection at 5 to 7 milliseconds (too fast to be a real authorization evaluation against the resource's role assignments) that only affects the system-assigned managed identity and not a user principal with equivalent or broader permissions on the same deployment, is not consistent with normal RBAC propagation delay or misassigned roles. That pattern points toward the server-side Memory Store orchestrator resolving or presenting the caller identity differently than a standard direct inference call, which lines up with your own hypothesis in question 1 about an on-behalf-of or internal identity resolution path rather than the project MI's own token being used as-is against ChatCompletions_Create.
Since Memory (preview) and the Memory Store API (preview) are both explicitly preview features, this looks like either a known limitation specific to BYO-hosting projects with disableLocalAuth=true, or a service-side defect in how the orchestrator tier authenticates for server-side extraction calls. Either way, this is not something resolvable purely through additional role assignments from the customer side, it needs review from the Foundry engineering team.
Isolate whether this is specific to system-assigned identity. As a diagnostic step, try creating a user-assigned managed identity, assign it Foundry User at the same account scope, attach it to the project instead of the system-assigned identity, and reproduce the memory write. If a UAMI succeeds where the system-assigned MI fails, that strongly confirms a system-assigned identity resolution issue specific to BYO-hosting projects rather than a role or data-action gap.
Confirm whether local auth affects the path. If you have a non-production project where you can temporarily set disableLocalAuth=false, test whether key-based auth against the same account allows the Memory Store write to succeed. This does not fix your AAD-only production project, but it helps confirm whether the 403 is tied specifically to the AAD-only, BYO-hosting combination.
Preserve your diagnostic evidence exactly as you have it. Keep the correlation ID, the AzureDiagnostics rows showing the 403 on ChatCompletions_Create from the project MI's object ID, and the contrasting successful 200 from your user identity against the same deployment. This is exactly the evidence the product team will need and will significantly speed up triage since you have already isolated it to the principal type.
Open a technical support ticket rather than relying on community answers for this one, since it requires engineering visibility into the Memory Store orchestrator's internal auth flow. In the Azure portal, go to Help + support, Create a support request, Issue type Technical, Service Azure AI Foundry (or Cognitive Services if Foundry isn't listed as a separate service in your support catalog), and in the problem description reference this exact symptom: server-side Memory Store write/search on a BYO-hosting project failing with a masked 500 client-side, backend 403 on ChatCompletions_Create from the project's system-assigned managed identity, reproducible even after assigning both Foundry User and Cognitive Services OpenAI User. Include your correlation ID, the managed identity's object ID, the account region (westus3), and the API version (2024-12-01-preview) so it routes to the right team quickly.
Also file this on the Memory Store preview feedback channel. Preview features often move faster through direct engineering feedback than general support routing. Check the Azure AI Foundry feedback link at the bottom of the Memory documentation page, or the azure-ai-docs GitHub repository, and file an issue there in parallel with your support ticket, referencing the same correlation ID.
If this answer helps you kindly accept the answer which will help others who have similar questions.
Best Regards
Jerald Felix.