Skip to content

Build Not yet confirmed elsewhere1 publisher 3 min read Published Updated

Chrome's Local Network Access prompt makes running localhost helpers look uninstalled

Since Chrome 142, a public website needs the user's permission before it can reach a helper service on 127.0.0.1. Scanner and printer agents with short health-check timeouts mistake the pending prompt for a missing install, a developer found and documented on dev.to.

The Engineer · Build desk

How we use AI Send a correction

Illustration accompanying Chrome's Local Network Access prompt makes running localhost helpers look uninstalled
Generated illustration
Health check gives up while Chrome's prompt is open The health-check timeout in the author's example, and the Chrome and Firefox versions his dev.to post ties to Local Network Access.

Key figures: in the author's example the health check gives up after 1.5 seconds. Chrome 142 began showing the permission prompt, Chrome 145 split the permission in two, Chrome 156 is planned to remove the opt-out policy, and Firefox 153 applies the same restriction on desktop.

Health check gives up while Chrome's prompt is open
FigureValueNoteClaim
Wait before the example health check gives up1.5 seconds19
Permission prompt begins142 Chrome version1
Permission split in two145 Chrome version3
Opt-out removal, planned156 Chrome version5
Same rule on desktop153 Firefox version6

What happened

  • Dynamsoft's FAQ for its document scanning SDK says that on Chromium 142 and later the page keeps asking users to install a service that is already installed and running.
  • While the permission prompt is open, the page's request neither fails nor fires an event; it simply waits until the user clicks.
  • Chrome 145 split the permission into loopback-network for programs on the same computer and local-network for other LAN devices, keeping the old name as an alias.
  • Chrome 147 put WebSocket and WebTransport connections behind the same prompt, so helpers that speak WebSocket are covered as well.

Why it matters

  • decision Helper vendors have to report at least three states to users, because a blocked permission and an absent agent reach page script as the same TypeError.
  • constraint Recovery from a Block click moves into the user's browser settings, because script can neither re-raise the prompt nor clear the block.
  • exposure IT teams that switched the feature off with the LocalNetworkAccessRestrictionsTemporaryOptOut policy will see the failure come back when Chrome 156 removes it as planned.
  • precedent With Firefox 153 prompting on desktop too, permission handling becomes a standing code path for browser hardware agents in both Chrome and Firefox.

"This week I found a bug in my own code by reading another company's support page," wrote the developer behind the post, who builds the same kind of local agent for receipt printers [18][15]. He checked his own agent against the symptom Dynamsoft documents, and it failed the same way [15].

His health check had the common shape. It sends GET /v1/health with a 1.5 second timeout and returns false on any exception, and the app then tells the user to install the helper [10]. Under Local Network Access, the pending prompt holds that request open with no error and no event [9]. The timer fires first. A 1.5 second limit assumes a person who answers browser prompts faster than that, and the user in the post's example is a cashier looking at the till, not the address bar [19]. "The helper is running. The browser is waiting for a click nobody knows they need to make," he wrote [16].

He tested on Chrome 155 on Windows, with the agent on 127.0.0.1:17777 and a public https origin that had never asked for permission before [7]. Chrome accepted all three names, loopback-network, local-network and local-network-access, and each returned "prompt" [7]. The test covers one build on one operating system. For the result to transfer, Chrome would have to behave the same on macOS and Linux, and the post does not test them [7].

A Block click leaves less room. The post says this part comes from the author's reading, not his own testing: Chrome does not ask that site again, and every later request fails [21]. Dynamsoft's page shows the console line "Permission was denied for this request to access the unknown address space." [21] Page script cannot read that string. It gets the same TypeError a missing agent would produce [11].

His replacement, agentStatus, keeps the 1.5 second AbortController and passes targetAddressSpace: 'loopback' to fetch. When the request fails, it asks the Permissions API for the state [13]. Denied returns permission_denied; prompt plus an AbortError returns permission_prompt; anything else returns not_running [13]. The middle branch is good engineering. Chrome prompts only when something is listening, so a timeout while the state reads "prompt" means a live helper is waiting on a click [8][20]. The state lookup tries loopback-network first and falls back to local-network-access for Chrome 142 to 144. It reports "unsupported" for Safari and older browsers [14].

We think three states is the minimum for anyone shipping a localhost agent, and the message text matters as much as the branch logic. Only the user can fix a denied state, in the site setting Chrome labels "Apps on device", and the denied message should send them there [12][3]. Support desks have a check of their own to run. He wrote that when a customer says they fixed it with a policy, support should ask which policy [17].

What to watch

  • Whether Chrome 156 ships on schedule with the LocalNetworkAccessRestrictionsTemporaryOptOut policy removed.
  • Whether Chrome adds a way for a page to re-request loopback-network access after a Block, which would change how vendors handle the denied state.
  • Whether Dynamsoft and other helper vendors ship SDK updates that report the permission state to users.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence55
Adoption65
Hype gap+5
Incentives25
Confidence55
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Since Chrome 142 (28 October 2025), a public website cannot simply fetch() something on the user's machine or LAN; Chrome shows a permission prompt first. The Chrome team calls this Local Network Access.

    Reported Supported Source: dev.to post by a receipt-printer agent developerView cited source
  2. [2]

    Dynamsoft sells a document scanning SDK that works through a service installed on the user's PC, reached by the web page on 127.0.0.1. Its FAQ lists a symptom for Chromium 142 and later: the page keeps asking the user to download and install the service even though it is already installed and running.

    Reported Supported Source: dev.to post, citing Dynamsoft's FAQView cited source
  3. [3]

    Chrome 145 split the single permission into two: loopback-network for programs on the same computer, shown in site settings as "Apps on device", and local-network for other devices on the LAN. The old name local-network-access still works as an alias.

    Reported Supported Source: dev.to post, citing Chrome's guidance tracker and DynamsoftView cited source

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

1 independent publisher whose own reporting we read for this story.

  1. dev.to

    1 article · October 10, 2026

    "Agent not running" when it is running: Chrome's local network prompt and localhost helpers

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

  • Localhost helper servicesFollow
  • Browser local network access controlsFollow
  • Enterprise browser policyFollow

Entities

Loading related stories