An Azure service that provides private connectivity from a virtual network to Azure platform as a service, customer-owned, or Microsoft partner services.
Welcome to Microsoft Q&A,
Hello @YH I hope you are doing well,
To directly answer your two questions:
1. Is there an issue using Portal creation and CLI approval? No. Azure Resource Manager (ARM) is entirely agnostic to the management plane tool used. Creating the resource via the Azure Portal and approving it via Azure CLI (az network private-endpoint-connection approve) is a fully supported and standard workflow.
2. Is there a connection limit in Databricks workspaces? Yes. Unlike Azure Storage which allows hundreds of private endpoints, Azure Databricks has a hard limit of 5 private endpoints per workspace for front-end (inbound) connections (databricks_ui_api).
Why is it stuck in Pending? When you approve the PE via the CLI, you are interacting with the Azure Resource Manager. ARM then sends a sync request to the Databricks Control Plane to finalize the connection. If the connection remains stuck in "Pending", it means the sync between ARM and the Databricks backend failed. This typically happens for three reasons:
Quota Exhaustion: You have hit the 5 PE limit on the target workspace, so the Databricks Control Plane silently rejected the approval sync.
Incorrect Group ID: The PE was requested using the wrong sub-resource target (e.g., requesting browser_authentication when you meant databricks_ui_api), causing a validation failure on the Databricks side.
- State Desynchronization: A transient API timeout occurred between Azure and the Databricks infrastructure during the CLI approval execution.
The Remediation: Because the state is now wedged between ARM and Databricks, you cannot force the approval through. You must delete the pending Private Endpoint connection from the Databricks workspace's Networking blade, verify you are under the 5 PE limit, and recreate the PE request.
Verify privateLinkServiceConnectionState.status = Approved in the PE JSON; copy the exact resource ID used in approval.
Compare with working Blob PE: export both PE JSONs and highlight differences (resource IDs, subresource, connectionState).
Check Databricks account PE rules on the Network connectivity configurations page for the workspace/account; confirm it’s not at quota.
Retry approval via portal UI in the Databricks subscription (to rule out CLI parameter mismatch).
If still Pending: gather the artifacts above and open an Azure Databricks support case (include PE JSON, CLI output, activity logs, timestamps, and a working Blob PE example).
😊 If my answer helped you resolve your issue, please consider marking it as the correct answer. This helps others in the community find solutions more easily. Thanks!