Skip to content

Linux: geolocation fails despite granted permission #2522

Description

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

  1. 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)
);
  1. Grant the permission prompt.
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions