Skip to content
Ward

Chrome 137 removed --load-extension, and the documented way round it is gone too

Branded Chrome accepts --load-extension, loads nothing, and says so only in its own log. Measured on Chrome 151, where the old escape hatch is dead.

4 min readDivyansh Singh

Every profile manager in this category offers per-profile extensions. Assign an ad blocker to one profile, a cookie editor to another, a password manager to a third. The mechanism underneath is nearly always the same one flag: --load-extension, pointed at an unpacked extension directory when the browser starts.

On branded Google Chrome, that flag has done nothing since version 137. It is still accepted. The browser still starts. No error dialog appears, no exit code changes, and the profile opens looking exactly the way it should. The extension is simply not there.

What was measured

Two launches from the same code path, one binary apart.

BrowserFlag passedExtension loadedWhere the failure appears
Google Chrome 151.0.7922.76YesNoOne line in Chrome's own debug log
Microsoft Edge 151.0.4129.59YesYesNowhere; it worked

Both were headed launches against a clean profile directory with no other instance of that browser running. The extension was a small unpacked fixture with a distinctive name in its manifest. Loading was verified over the DevTools Protocol by enumerating targets and reading each extension's own manifest name back, rather than by looking at the toolbar - a toolbar icon is a rendering question and this is not.

Chrome's log line is the entire diagnostic:

Chrome debug log
--load-extension is not allowed in Google Chrome, ignoring

That file is not open by default. Nothing surfaces the line to the person who just launched the browser. If you are building on top of Chrome and you check for the extension the way most people check - by looking - you will conclude it worked on a machine where it did not.

The workaround that no longer works

The removal in Chrome 137 shipped with a feature flag that turned the old behaviour back on, and that flag is still what search results, forum answers and half the automation libraries in this category will tell you to pass: --disable-features=DisableLoadExtensionCommandLineSwitch.

It was measured on the same Chrome 151 build, on the same fixture, in the same launch path. It changes nothing. The extension does not load, the log line still appears, and the flag is accepted in the same silent way the first one was.

This is worth saying plainly because the advice is everywhere and it is now wrong. An escape hatch that has been closed behaves identically to an escape hatch you spelled correctly and are using properly. There is no signal that distinguishes them.

Why an unrecognised flag is still passed

Ward passes --load-extension to every Chromium engine, including branded Chrome, and then tells the operator that Chrome will ignore it. That looks like a contradiction and is not.

An unrecognised switch on a Chromium command line costs nothing: it is parsed, it matches nothing, and the browser carries on. Special-casing the flag out for Chrome would mean the launcher had to know which builds honour it, which changes with every release and cannot be tested from inside the application. Passing it and being honest about the outcome is a smaller thing to get wrong than maintaining a table of which browser versions still work.

What the operator sees instead is a sentence next to the extension picker saying that branded Chrome will not load these and naming the engines that will. That sentence is a constant in the source, it sits beside the control it qualifies, and it is asserted by a test - the same test that would tell us if Chrome ever started honouring the flag again.

What this means if you manage profiles

Three practical consequences, in the order they will bite.

  1. If per-profile extensions matter to your work, branded Chrome is not the engine. Edge 151 honours the flag, and that is the half measured here. The removal is specific to Google's own branded builds rather than to the Chromium codebase, which is why Ward's own caveat names Chromium, Edge and Brave as the engines to reach for - but only the Edge half of that sentence has been watched happen on this machine, and the rest of this post is about how little a flag being accepted proves. Check the build you actually intend to use.
  2. Verify by reading the extension back, not by looking at the browser. Enumerate targets over the DevTools Protocol and check the manifest name. A toolbar that looks right on the machine you tested on proves nothing about the machine you shipped to.
  3. Distrust any tool that reports extension assignment as successful. Unless it tells you which browser build it was talking to, a success message here means the flag was written onto a command line, not that anything was loaded.

The general shape of this is the one worth carrying away. Browsers are moving switches that used to be for developers behind enterprise policy or removing them outright, and the removals are quiet by design: an error dialog would be a support burden for Google and an invitation to the exact automation the removal was meant to discourage. Silence is cheaper for the vendor and more expensive for everybody building on top.

The only defence is to check the thing itself rather than the flag you passed, and to write down the version number you checked it on.

How this post was checked

Data source
Google Chrome 151.0.7922.76 and Microsoft Edge 151.0.4129.59 on Windows 11, clean profile directories, launched from Ward
Measured with
The Ward launcher, Chrome's own debug log, and the Chrome DevTools Protocol reading the loaded extensions back
The claim
The disable-features escape hatch published everywhere no longer restores the flag on branded Chrome, and the failure is silent everywhere except the log.

Divyansh Singh

Builds Ward at Digital Heroes

Divyansh Singh builds Ward, a Windows manager for many isolated browser profiles, at Digital Heroes. Most of his week is spent in the Chromium command line, the DevTools Protocol and Windows process behaviour. Every measurement quoted in these posts was taken on the machine Ward is built and tested on, with the browser or tool version written down beside the result, and the ones that contradicted what the documentation said are the ones that became posts.

Last reviewed . Corrections and bug reports: support@digitalheroes.co.in.

Ward is the desktop application these measurements came out of

Many browser profiles on one PC, each with its own proxy and its own device identity. Free plan, free account, nothing to buy today.

Related