Apps fail to resolve a name while the tunnel stays connected and every other indicator looks healthy. On a phone, the usual cause is a resolver chosen by the device rather than by the VPN profile. Two settings can each claim authority over the same lookup. Working out which one wins, and whether it can even answer the question, is faster than touching the tunnel.

Two Settings Decide the Same Name

A phone's Private DNS setting selects a resolver for the device, with modes that range from automatic selection to a named hostname. A VPN profile can push its own resolver at the same time, and the two are configured by different screens and different owners. Neither one necessarily overrides the other for every application. That is why a working tunnel and a failing lookup coexist without contradiction.

A browser can add a third layer, because secure DNS inside the browser may choose its own provider. The application that produced the error is the only reliable guide to which of the three answered. The resolver also has to be able to answer. A company-only name is not in a public resolver's data, so the lookup fails on content rather than on connectivity.

Choose the Mode by the Names You Need

If the device must resolve internal names, the resolver has to be one that holds those zones, which usually means the tunnel's resolver or a split-DNS arrangement the organization documents. If only public names matter, a strict encrypted resolver is a defensible choice that also removes plaintext lookups. The decision follows from the names, not from a preference about encryption.

The failure behaviour differs by mode as well. A strict choice that cannot reach its resolver produces failures for every name, while a mode with permitted fallback can keep public names working and internal names broken. That difference tells you which mode you are in before you open a settings screen. On a managed device, the approved policy decides and the user cannot safely override it. On a personal setup, one documented comparison is enough to identify the conflict, and the intended privacy setting should be restored afterwards rather than left disabled.

Check Which App Is Asking

Reproduce the failure in the application that reported it, and note whether the error is a name error or a connection error. A name error from one app and a successful page in another is the signature of two resolvers, not of a broken tunnel.

adb shell settings get global private_dns_mode
adb shell settings get global private_dns_specifier
adb shell dumpsys connectivity | grep -i -m 5 dns

Those commands read the device's current configuration, and manufacturer builds can rename or restrict the underlying values, so treat the output as a hint rather than a specification. The Android Private DNS documentation describes the modes and the hostname form a device expects.

Compare that answer with the resolver the VPN profile pushes. If they disagree, you have found the conflict and the remaining question is which one the organization intends to win.

Restore the Intended Setting After One Comparison

Change one setting, retest the two names, and put the setting back. A device left in a permissive mode resolves internal names and quietly sends every public lookup to whoever answers first, which is a privacy change nobody recorded.

Write the outcome as a rule: internal names resolve through this resolver, public names through that one, and the browser follows or does not follow the device. A rule that names the resolver is testable, while a note that says the VPN was fixed is not. Then check whether anything else on the device depends on the resolver you changed. Update checks, captive portal detection and mail clients all make their own requests, and they fail in ways that users report as unrelated problems.

Ngaahi tokoni fekau'aki