Function app with system assigned identity has developed issue where Keyvault references in Environment Variables no longer resolve

Del Hamilton 20 Reputation points
2026-06-15T20:54:06.0066667+00:00

I've been working with a number of function apps over the past week, most have one or more environment variable values in the format "@Microsoft.KeyVault(VaultName={my-vault-name};SecretName={secret})". After working fine all last week, today two of the functions have run into an issue where they are unable to resolve these values and therefore the function apps crash. In the Environment variables portal blade of the function app there is the error icon and Key vault link - when pressed it shows the details and OtherReasons as the issue. I have, I think, carefully compared the function with others that are working correctly and they match exactly. In the Identity blade, I checked permissions and it confirms that the identity has the role "Key Vault Secrets User" to Keyvault. In Keyvault, In Keyvault, IAM, Role assignments, the function app identity is listed with the same role as other function apps where there is no issue.

I am at a loss to understand why this has just stopped working without any changes, that I'm aware of.

Azure Key Vault
Azure Key Vault

An Azure service that is used to manage and protect cryptographic keys and other secrets used by cloud apps and services.


Answer accepted by question author
Pravallika KV 18,850 Reputation points Microsoft External Staff Moderator
2026-06-15T21:03:16.1166667+00:00

[Updated]
Hi @Del Hamilton ,

Thanks for reaching out to Microsoft Q&A.

There was an issue in backend, and it was mitigated by Jun 18, 2026.

The Microsoft Azure Team has investigated the issue you reported regarding Key Vault reference resolution failures for your Function App in the UK South region starting on 6/16/2026. This issue was found to be related to an internal platform infrastructure inconsistency where a portion of the components responsible for resolving Key Vault references on behalf of customer applications became unavailable. The platform's routing mechanism did not detect this unavailability promptly and continued to direct resolution requests to the affected components, causing Key Vault reference resolution attempts to fail intermittently.

Upon investigation, engineers identified that the affected infrastructure components were no longer in a healthy state but had not been removed from the routing path. A targeted recovery action was performed to restore the Key Vault resolution service to full capacity in UK South, after which all Key Vault references resumed resolving successfully. 

We are continuously taking steps to improve the Azure Functions service and our processes to ensure such incidents do not occur in the future, and in this case it includes (but is not limited to):

  • Improving health detection to automatically identify and remove unhealthy resolution components from the routing path.
  • Deploying additional monitoring to detect when resolution capacity drops below expected thresholds, enabling faster detection and response.
  • Implementing automated self-healing capabilities so the platform can recover from this class of issue without manual intervention.

We sincerely apologize for any inconvenience.

Was this answer helpful?

1 person found this answer helpful.

1 additional answer

Sort by: Newest
  1. Sina Salam 31,456 Reputation points Volunteer Moderator
    2026-06-23T13:25:24.41+00:00

    Hello Del Hamilton,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    I understand that your Function app with system assigned identity has developed issue where Key vault references in Environment Variables no longer resolve.

    This is taken longer, your RBAC check is necessary but not sufficient. The fastest fix is:

    1. Correct the reference syntax to @Microsoft.KeyVault(...) with no space.
    2. Prefer versionless SecretUri.
    3. Force-refresh Key Vault references using:
         az rest --method post </span> 
           --url "https://management.azure.com&lt;FUNCTION_APP_RESOURCE_ID&gt;/config/configreferences/appsettings/refresh?api-version=2022-03-01"
      
    4. Restart the Function App.
    5. Validate root cause from Key Vault SecretGet audit logs.

    If the app recovers after refresh and logs show successful SecretGet, the root cause was stale/corrupt App Service Key Vault reference resolution cache, not RBAC. If it does not recover, the Key Vault logs will identify the exact failing category: 403 access/network, 404 wrong secret, disabled/expired secret version, or no platform resolution attempt due to syntax/reference state. This will both restores service and proves root cause.

    Use the below resources for more reading and steps:

    I hope this is helpful! Do not hesitate to let me know if you have any other questions, steps or clarifications.


    Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.