Finding & fixing Azure resource using Azure SQL Database 2014-04-01 APIs

Mikael Karlgren 20 Reputation points
2025-10-10T07:54:26.1266667+00:00

Hello. I'm using Azure and have been getting the following email sent to me multiple times:

"Required action
To avoid potential service disruptions, upgrade any Azure SQL Database resources that use version 2014-04-01 APIs to a newer stable version by 31 October 2025.

Azure SQL Database 2014-04-01 APIs will be retired on 31 October 2025 You’re receiving this notification because you are associated with one or more Azure subscriptions that use Azure SQL Database APIs. To improve performance and security, we’re updating Azure SQL Database APIs. As part of this, all version 2014-04-01 APIs will be retired on 31 October 2025. You’ll need to update your resources, including templates, tools, scripts, and programs, to use a newer API version by then. Any API calls still using the older versions after that date will stop working until you’ve updated them. Required action  To avoid potential service disruptions, upgrade any Azure SQL Database resources that use version 2014-04-01 APIs to a newer stable version by 31 October 2025.

Account Information Subscription ID: <<removing subscription id for security purpose>>"

I've tried multiple times to try find whatever API call using this old API version, but have failed to find this. Seems to be some internal tool within Azure that I cannot adjust or see the calls to. Our own developed tools are not using any old API version.

The subscription ID mentioned is a Log Analytics workspace. I've performed lots of queries to try find any API calls using the API version mentioned for this resource, with public recommended queries, and my own configured queries, but have found no results.

I'd now like help from Microsoft to resolve this, to ensure that no critical API requests will stop to work. I got another message yesterday saying "Azure SQL Database 2014-04-01 APIs will be retired on 30 June 2026", and that the earlier communication regarding termination on 31 October has been extended, but in any case, we'd like to resolve this issue now instead of waiting, and would like some help regarding how to find & fix the affected resource using this old API version. Thanks.

Also to clarify - our current support plan does not allow me to create an internal ticket in Azure, but they have forwarded me to this Q&A forum, hence why I'm posting and seek help here.

BR, Mikael

Azure SQL Database
{count} votes

1 answer

Sort by: Most helpful
  1. Sina Salam 25,931 Reputation points Volunteer Moderator
    2025-10-30T11:35:26.0166667+00:00

    Hello Mikael Karlgren,

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

    I understand that you would like finding & fixing Azure resource using Azure SQL Database 2014-04-01 APIs.

    To begin, confirm the official retirement advisory and extended deadline now set for June 30 2026 using Microsoft’s announcement notice and the updated [Azure SQL Database REST API documentation - https://free.blessedness.top/en-us/rest/api/sql/

    What you need to do next, perform a full inventory of your Infrastructure-as-Code assets. Search all local and remote repositories for "2014-04-01" using standard code search (for example,

    grep -RIn --exclude-dir=.git '2014-04-01' 
    

    Follow this by scanning Azure Template Specs through the CLI:

    az ts show --name <templateSpecName> --resource-group <rg> --query "properties.template" -o json | jq '..|strings|select(test("2014-04-01"))'
    

    to confirm that no template stored in Azure still references the old API version. Then, run a tenant-wide Azure Resource Graph query to identify live resources deployed with that version:

    az graph query -q "Resources | where tostring(apiVersion) contains '2014-04-01' | project subscriptionId, resourceGroup, name, type, apiVersion"
    

    If this returns zero results, continue by inspecting deployment history using az deployment sub list or az deployment group list to catch any archived templates referencing the string.

    Extend your verification to Azure Policy and Custom Role Definitions, since these can embed old API calls by using:

    az policy definition list --query "[?contains(to_string(policyRule),'2014-04-01')]"  
    az role definition list --query "[?contains(to_string(permissions),'2014-04-01')]"
    

    Now, you will need to audit Automation Runbooks, Logic Apps, or DevOps pipelines by searching script content for REST endpoints using the retired API version. For an example:

    az automation runbook show-content -g <rg> --automation-account-name <acct> --name <runbookName> | grep '2014-04-01'
    

    Then review Activity Logs or Log Analytics for calls containing api-version=2014-04-01 to ensure no background automation is still using it. When outdated usage is confirmed, replace "apiVersion": "2014-04-01" with a supported version such as "2023-08-01", based on the latest Azure SQL REST API versions on https://free.blessedness.top/en-us/rest/api/sql/

    So, adjust resource schemas to align with property changes like auditingPolicies becoming auditingSettings or state changing to status in Transparent Data Encryption and validate templates through:

    az deployment group validate -g <rg> -f <template.json> --parameters @params.json
    

    For SDKs, migrate from Microsoft.Azure.Management.Sql to the new Azure.ResourceManager.Sql library for compatibility check the Azure SDK migration guide on https://free.blessedness.top/en-us/dotnet/azure/migrate-from-track1-to-track2

    If all checks return negative (no references found), it likely indicates that the notice originated from Microsoft-managed dependencies, meaning no customer action is required. You may optionally unregister the provider to suppress further alerts, though only if you do not use SQL services:

    az provider unregister --namespace Microsoft.Sql
    

    as documented in https://free.blessedness.top/en-us/azure/azure-resource-manager/management/resource-providers-and-types

    If you could follow these end-to-end steps above, I trust your environment is fully compliant with the upcoming retirement, your templates will align with current REST API standards, and any risk of deployment disruption is eliminated.

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


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

    0 comments No comments

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.