An Azure managed PostgreSQL database service for app development and deployment.
Hello Melisa Ramos,
Greetings! Thanks for raising this question in Q&A forum.
You have hit a classic circular dependency deadlock that can occur with Azure PostgreSQL Flexible Server and Private Endpoints. The server cannot start because of an issue with the private endpoint, and the private endpoint cannot be removed because the server is stopped. Neither operation can proceed without the other completing first — which means you cannot break out of this loop from the portal or CLI on your own. This is a known platform-level issue and requires Microsoft backend intervention to resolve cleanly.
Here are the steps to work through this:
Step 1: Try force-starting the server via Azure CLI
Before escalating, try one more start attempt using the Azure CLI directly, as it sometimes bypasses portal-level validation checks:
az postgres flexible-server start \
--resource-group <your-resource-group> \
--name <your-server-name>
If this returns a specific error message (not just a generic failure), note it down carefully — it will be very useful for your support ticket.
Step 2: Try deleting the Private Endpoint Connection directly via REST API
Even though the portal blocks this, sometimes the ARM REST API allows you to reject or delete the private endpoint connection independently of the server state. Try this using Azure Cloud Shell:
az rest --method delete \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server-name>/privateEndpointConnections/<connection-name>?api-version=2023-06-01-preview"
You can find the <connection-name> by going to Azure Portal → Your PostgreSQL Server → Networking → Private Endpoint Connections and copying the connection name listed there.
Step 3: Try rejecting the Private Endpoint Connection instead of deleting
If the delete call above also fails, try rejecting the connection instead — this sometimes succeeds in a stopped state where deletion does not:
az network private-endpoint-connection reject \
--resource-group <your-resource-group> \
--name <connection-name> \
--resource-name <your-server-name> \
--type Microsoft.DBforPostgreSQL/flexibleServers \
--description "Removing stale connection"
Once rejected, try the delete again.
Step 4: Check if the Private Endpoint NIC can be deleted independently
Go to Azure Portal → Search for Network Interfaces → Look for the NIC associated with your private endpoint (it will have a name linked to your endpoint). If the NIC shows as unattached or orphaned, you may be able to delete it directly, which can sometimes break the dependency lock.
Step 5: Open an Azure Support Ticket — this is the most important step
Since this is a genuine circular dependency that cannot be resolved through normal self-service operations, you need Microsoft backend support to manually break the lock. Go to:
Azure Portal → Help + Support → New Support Request and fill in:
- Issue type: Technical
- Service: Azure Database for PostgreSQL
- Problem type: Server Management
- Problem subtype: Unable to start or delete server
- Severity: B (Moderate)
In the description, clearly explain:
- The circular dependency: server cannot start, private endpoint cannot be removed while server is stopped
- The exact error messages you received from both the portal and CLI attempts
- Your server name, resource group, and subscription ID
- That you need backend assistance to manually remove the private endpoint dependency so the server can be started or deleted
The Azure PostgreSQL engineering team has backend tools to detach private endpoint connections from stopped servers and can resolve this quickly once a ticket is raised.
If this answer helps you kindly accept the answer which will help others who have similar questions.
Best Regards,
Jerald Felix.