Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
The subnet is blocked by an orphaned App Service serviceAssociationLink (AppServiceLink). Because the linked App Service plan no longer exists, the SAL can’t be cleaned up automatically and prevents subnet deletion.
Use one of the following approaches.
- Purge the orphaned Service Association Link (preferred)
- Run the Azure CLI purge command for unused App Service VNet integration (from Cloud Shell or local CLI) targeting the affected subnet and virtual network.
- The purge operation removes the unused virtual network integration and its SAL from the subnet.
- After the purge completes successfully, retry deleting or modifying the subnet.
- Re-create and cleanly disconnect the App Service integration (workaround) If the purge command doesn’t work or isn’t available in the environment:
- Re-create an App Service plan and App Service using the same web app name that originally had VNet integration (if known).
- In the Azure portal, open the App Service → Networking → configure VNet integration to the problematic subnet (
subnet-bastion). - After integration is established, go back to VNet integration and select Disconnect to remove the integration cleanly.
- Delete the App Service and App Service plan if they are no longer needed.
- Delete or modify the subnet again; the SAL should now be removed.
- Contact Microsoft Support
If both approaches fail or the purge API isn’t accessible, open a support request with Microsoft and reference that the subnet is blocked by an orphaned App Service
serviceAssociationLink(AppServiceLink) withallowDelete=false. Support can remove the SAL on the backend.
After the SAL is removed, the subnet should delete normally, following the usual order (VM NICs, private endpoints, service deployments, service association links, service endpoints, delegations, then subnet).
References: