Symptoms
https://adb-<id>.<n>.azuredatabricks.nettimes out or returns a connection error for users on the corporate network or VPN.- Login loops or a blank page after Entra ID sign-in (browser authentication endpoint unreachable).
- Scheduled jobs may keep running (back-end connectivity is separate), but nobody can open the UI, and REST/CLI calls from on-prem tools fail.
- Started after a change to private DNS zones, VNet links, DNS forwarders, the private endpoint, or
publicNetworkAccess.
Step 1: what does the workspace URL resolve to? (2 minutes)
From an affected client:
Resolve-DnsName adb-1234567890123456.7.azuredatabricks.net
Test-NetConnection adb-1234567890123456.7.azuredatabricks.net -Port 443
nslookup adb-1234567890123456.7.azuredatabricks.net
curl -sv https://adb-1234567890123456.7.azuredatabricks.net/login.html -o /dev/null 2>&1 | grep -E "Connected|HTTP/"
| Result | Meaning |
|---|---|
| Resolves to a private IP of your front-end private endpoint, port 443 fails | Routing / NSG / firewall between client and endpoint |
| Resolves to a public IP and public access is disabled | Private DNS not used by this client: zone link, forwarder or record missing |
| Does not resolve | DNS forwarding chain broken |
| Resolves and connects, but login loops | Browser authentication private endpoint / record missing |
Step 2: check the private endpoint and DNS records
az network private-endpoint list -g rg-dbx-network \
--query "[].{name:name, state:privateLinkServiceConnections[0].privateLinkServiceConnectionState.status, group:privateLinkServiceConnections[0].groupIds[0]}" -o table
az network private-dns record-set a list -g rg-dns -z privatelink.azuredatabricks.net \
--query "[].{name:name, ip:aRecords[0].ipv4Address}" -o table
az network private-dns link vnet list -g rg-dns -z privatelink.azuredatabricks.net \
--query "[].{vnet:virtualNetwork.id, state:virtualNetworkLinkState}" -o table
You need:
- An A record for the workspace (
adb-<id>.<n>) pointing at the front-end private endpoint IP (databricks_ui_apigroup). - An A record for the region's browser authentication endpoint (created by a
browser_authenticationprivate endpoint, usually one per region in a dedicated "web auth" workspace). - A VNet link from the zone to the VNet where your DNS resolvers or forwarders live (hub), not only to the workspace VNet.
Warning
If someone deleted and recreated the private endpoint, it may have a new IP, and the old A record now points nowhere. Compare the record with the endpoint's current NIC IP.
az network private-endpoint show -g rg-dbx-network -n pe-dbx-ui \
--query "customDnsConfigs[].{fqdn:fqdn, ip:ipAddresses[0]}" -o table
Step 3: fix DNS
Recreate or correct records:
az network private-dns record-set a add-record -g rg-dns -z privatelink.azuredatabricks.net \
-n adb-1234567890123456.7 -a 10.20.1.5
Better: attach a private DNS zone group to the endpoint so Azure maintains the record:
az network private-endpoint dns-zone-group create -g rg-dbx-network --endpoint-name pe-dbx-ui \
-n default --private-dns-zone $(az network private-dns zone show -g rg-dns -n privatelink.azuredatabricks.net --query id -o tsv) \
--zone-name databricks
Restore the hub VNet link if it was removed:
az network private-dns link vnet create -g rg-dns -z privatelink.azuredatabricks.net \
-n link-hub --virtual-network $(az network vnet show -g rg-hub -n vnet-hub --query id -o tsv) --registration-enabled false
On-prem DNS: confirm the conditional forwarder for azuredatabricks.net (or privatelink.azuredatabricks.net) still points to your Azure DNS Private Resolver inbound endpoint or DNS forwarder VMs.
Flush client caches after fixing: ipconfig /flushdns.
Step 4: fix the network path
If DNS is right but port 443 fails:
- NSG on the private endpoint subnet (if network policies for private endpoints are enabled) must allow 443 from client ranges.
- Azure Firewall / NVA rules for traffic from on-prem or VPN ranges to the endpoint subnet.
- UDRs on the gateway subnet sending return traffic correctly.
az network watcher test-ip-flow --direction Inbound --protocol TCP \
--local 10.20.1.5:443 --remote 192.168.50.20:50000 --vm <a-vm-in-the-same-subnet-for-testing>
Step 5: emergency access (only if needed)
If the business needs the UI before DNS is fixed and policy allows it, a temporary option is to allow public access restricted by IP access lists:
az databricks workspace update -g rg-dbx -n dbx-prod --public-network-access Enabled
Caution
Only do this with IP access lists configured first, and revert the same day. Some organisations forbid it outright; check your security policy before using it.
Step 6: confirm
- Workspace URL resolves to the private IP from on-prem, VPN and Azure clients.
- Login works end to end (browser auth).
- CLI from an on-prem host:
databricks current-user me. - Public network access back to
Disabledif you changed it.
Prevent it next time
- Private DNS zone groups on every Databricks private endpoint, so records follow the endpoint.
- Resource locks on the private DNS zone, its VNet links and the endpoints.
- A synthetic check from on-prem that resolves and opens the workspace URL every five minutes.
- Change process for hub DNS that lists every privatelink zone and its consumers.