Summary
On Linux, navigator.geolocation.getCurrentPosition always fails with code: 2 (POSITION_UNAVAILABLE) and the message:
Failed to query location from network service. Check the DevTools console for more information.
This happens even when the site is served over HTTPS, the browser is a secure context, and the permission state is granted. Any website that relies on HTML5 Geolocation (login flows with location verification, maps, delivery apps, etc.) breaks.
Environment
- OS: Linux (kernel 7.0.0-30-generic)
- BrowserOS: latest build as of 2026-09-02
- Reproduces on any HTTPS site that calls the Geolocation API
Reproduction
- Open any HTTPS site that requests geolocation, or paste this in DevTools console on any HTTPS page:
navigator.geolocation.getCurrentPosition(
p => console.log('ok', p.coords),
e => console.error('err', e.code, e.message)
);
- Grant the permission prompt.
- Observe the error callback fires with code 2 and message "Failed to query location from network service".
Diagnostic output
protocol: "https:"
isSecureContext: true
hasGeolocationAPI: true
geolocationPermissionState: "granted"
geoTest: { error: "Failed to query location from network service. Check the DevTools console for more information.", code: 2, codeName: "POSITION_UNAVAILABLE" }
Likely cause
Chromium delegates geolocation to a network provider (Google Geolocation API at https://www.googleapis.com/geolocation/v1/geolocate). Custom Chromium builds on Linux often ship without a valid GOOGLE_API_KEY / GOOGLE_DEFAULT_CLIENT_ID / GOOGLE_DEFAULT_CLIENT_SECRET baked in, so the network lookup returns 400/403 and Chromium surfaces it as POSITION_UNAVAILABLE. Linux has no fallback provider.
Requested fix
Either:
- Ship BrowserOS with a working geolocation API key, or
- Integrate an alternate provider (e.g. IP-based fallback like Mozilla Location Service equivalent), or
- Document how users can set their own API key via environment variables/build flags.
Impact
Any site requiring location verification is unusable on BrowserOS for Linux. Workaround is per-site monkey-patching of navigator.geolocation, which isn't viable for end users.
Summary
On Linux,
navigator.geolocation.getCurrentPositionalways fails withcode: 2(POSITION_UNAVAILABLE) and the message:This happens even when the site is served over HTTPS, the browser is a secure context, and the permission state is
granted. Any website that relies on HTML5 Geolocation (login flows with location verification, maps, delivery apps, etc.) breaks.Environment
Reproduction
Diagnostic output
Likely cause
Chromium delegates geolocation to a network provider (Google Geolocation API at
https://www.googleapis.com/geolocation/v1/geolocate). Custom Chromium builds on Linux often ship without a validGOOGLE_API_KEY/GOOGLE_DEFAULT_CLIENT_ID/GOOGLE_DEFAULT_CLIENT_SECRETbaked in, so the network lookup returns 400/403 and Chromium surfaces it as POSITION_UNAVAILABLE. Linux has no fallback provider.Requested fix
Either:
Impact
Any site requiring location verification is unusable on BrowserOS for Linux. Workaround is per-site monkey-patching of
navigator.geolocation, which isn't viable for end users.