App Service Plan deleted (confirmed via Activity Log) but still incurring charges and not visible in portal/CLI

thijs hommes 0 Reputation points
2026-03-27T10:42:51.4766667+00:00

We are experiencing an issue where an Azure App Service Plan continues to incur charges even though it appears to have been successfully deleted.

  • Resource type: Microsoft.Web/serverfarms (App Service Plan)
  • Region: West Europe
  • Pricing tier: Premium/Dedicated (based on ~€70/day cost)
  • Scope: Single subscription and resource group

What we did

  1. Deleted the App Service Plan
    • Performed deletion via Azure Portal
  2. Verified deletion via Activity Log
    • Found Microsoft.Web/serverfarms/delete
      • Status: Succeeded (HTTP 200)
        • Timestamp matches deletion action
  3. Checked for recreation
  • Queried Activity Log for serverfarms/write
    • Result: No recreate events found
  1. Checked if resource still exists
    • Azure Portal:
      - Not visible in *App Service Plans*
      
            - Not visible in *All Resources*
      
                  - Not found via global search
      
                     Azure CLI:
      
                     ```yaml
                     az resource list --query "[?name=='
      
Community Center | Not monitored

1 answer

Sort by: Oldest
  1. AI answer

    2026-03-27T10:43:11.58+00:00

    Yes, this scenario is possible and is consistent with a “stuck” or back-end billing issue rather than an App Service Plan that still exists in ARM.

    From the details provided:

    • The Microsoft.Web/serverfarms/delete operation shows Succeeded (HTTP 200) in Activity Log.
    • The App Service Plan no longer appears in the portal (App Service Plans, All resources, global search).
    • az resource list and az resource list --resource-type Microsoft.Web/serverfarms do not return the resource.
    • There are no subsequent serverfarms/write (recreate) events.

    When an App Service Plan is actually deleted, it should no longer accrue compute charges. Official guidance is explicit that:

    • App Service plans do continue to accrue charges when they still exist but have no apps attached.
    • To stop charges, the plan must be deleted or scaled to the Free tier.

    “When you delete all apps in an App Service plan, the plan continues to accrue charges… To avoid unwanted charges, delete the plan or scale it down to Free tier.”

    “App Service plans that have no apps associated with them still incur charges because they continue to reserve the configured VM instances.”

    In the described case, the plan is already deleted and not present in ARM, so normal cost behavior (charging for an existing plan) should no longer apply. This aligns with the type of “phantom billing” issue described for other Azure resources:

    “Sometimes even after deleting a resource the billing for it gets "stuck". In these cases you need to create billing support request and have billing engineer investigate… Once they investigate and get rid of the phantom billing they will issue refund/waiver of charges.”

    There is also a documented pattern for Azure Container Instances where a resource continues to run and be billed after a stop/delete operation due to underlying platform issues:

    “This issue might occur due to stuck deactivations or errors in the underlying platform during stop or delete operations.”

    That article’s mitigation (recreating the same resource to force cleanup) is specific to container instances, not App Service Plans, but it confirms that:

    • Platform-level stuck deletions can occur.
    • Billing can continue even when a delete was requested.

    Given that:

    • The App Service Plan is not discoverable via ARM (portal/CLI/Activity Log beyond the delete event).
    • Charges are still accruing at the previous App Service Plan rate.

    This matches a back-end/billing synchronization issue rather than a still-existing App Service Plan.

    Actionable steps:

    1. Use Cost analysis → Cost by resource at the subscription level to confirm which resource ID is being billed (similar to the Azure Firewall guidance). Capture:
      • Resource ID
      • Meter details
      • Time range showing charges after the delete timestamp.
    2. Open an Azure Billing support request and provide:
      • Activity Log evidence of the successful serverfarms/delete operation.
      • Screenshots/exports from Cost analysis showing ongoing charges for that resource ID after deletion.

    Resolution for this type of phantom billing requires intervention by Azure Support; there is no self-service ARM/CLI operation that can fix a resource that is already gone from ARM but still being billed.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    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.