Looking for Help Identifying Installation Error Codes

536 views
Skip to first unread message

Cory Ulrich

unread,
Mar 21, 2022, 2:51:48 PM3/21/22
to Chromium Extensions
TLDR: I can't find a resource to tell me what the error numbers in the message at the bottom of this message mean.

Hello all, I have had a very intermittent issue with an extension I made for our organization. It's meant for internal use only as it uses the Chrome Enterprise API for things like identifying the serial number of a device.

I've only recently been able to actually get my hands on a device where the extension appeared to not be running. After doing some basic troubleshooting such as verifying the device had sufficient storage available, was enterprise enrolled, and cleared the user's browser cache, I decided to go poking into the system logs. I went poking around all of the files from the exported logs and found a reference to the extension's ID. In the Combined Logs .tar file, under \home\chronos\user\log\chrome, I found the error message posted at the bottom. For giggles, I decided to have the user log into a second device to see if the error followed, and it did. I thought that was strange, so I went to confirm that their account, and Chromebook are both in the correct OU's and indeed they're in both in the same OU's as hundred of other users / devices that are working just fine. 

Feeling perplexed, I decided to try a third device of a different model. Oddly enough, the extension installed just fine. 

Since the error message was all I had to go on, I did some basic Googling with no found results, then decided to go poking around the Chromium source, and was able to find some function that seemed to be used for generating the error in the log file, but seemingly do show what the actual codes mean.

If someone could direct me to a resource to figure out the meaning of these error codes, such as data=failure_reason: 16, so I can continue troubleshooting, I would greatly appreciate it.


2022-03-16T17:59:06.441246Z WARNING chrome[1569:1569]: [force_installed_metrics.cc(517)] Forced extension [ExtensionID_GoesHere] failed to install with data=failure_reason: 16; install_stage: 2; downloading_stage: 9; downloading_cache_status: 2; manifest_invalid_error: 0

Simeon Vincent

unread,
Mar 21, 2022, 9:36:36 PM3/21/22
to Cory Ulrich, Chromium Extensions
The error you linked states that is being logged from this file and line: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/extensions/forced_extensions/force_installed_metrics.cc;l=517?q=force_installed_metrics.cc&ss=chromium

The "installation" variable contains the data you're looking for. If you go to where that variable is defined (https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/extensions/forced_extensions/force_installed_metrics.cc;l=483?q=force_installed_metrics.cc&ss=chromium), you can click through to the type's definition (https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/extensions/forced_extensions/install_stage_tracker.h;drc=9e7459aafcd26da693f6377fd57133e5566cb2be;l=298) and find the types for each member you're interested in. For example, failure_reason is a FailureReason enum (https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/extensions/forced_extensions/install_stage_tracker.h;drc=9e7459aafcd26da693f6377fd57133e5566cb2be;l=134), and the comment for value 16 says "The manifest couldn't be parsed" (https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/extensions/forced_extensions/install_stage_tracker.h;l=187;drc=9e7459aafcd26da693f6377fd57133e5566cb2be).

Simeon Vincent
Developer Relations Engineer

U-46 Privacy Disclaimer 

This message, including any attachments, may contain confidential information or proprietary information, and is intended for the person / entity to whom it was originally addressed. Any use by others is strictly prohibited.

--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/a393e149-4ba6-4990-939e-359c5440b98cn%40chromium.org.

Cory Ulrich

unread,
Apr 8, 2022, 7:45:16 AM4/8/22
to Chromium Extensions, Simeon Vincent, Chromium Extensions, Cory Ulrich
Upon further trial and error I found I had to generate a new key for my Chrome Extension. I don't believe it was related to the transition to MV3, or more devices would have installed prior to this. In short I have a test extension with the exact same functionality that never seemed to have the same intermittent problem. I made it line for line identical to the production variant except for the key and it would install on devices that the production version would generate this manifest error. 

I finally threw my hands up, and decided to repackage the extension without the .PEM file, and have a new ID and key generated. Sure enough, tens of thousands of new installs happened over the next few days.

So for anyone reading this in the future who seems to be getting an intermittent error about passing the manifest (it wasn't a problem for ~18,000 devices, but was for ~15,000) try packaging your extension with a new key. 

Cory Ulrich

unread,
Apr 8, 2022, 7:48:13 AM4/8/22
to Chromium Extensions, Cory Ulrich, Simeon Vincent, Chromium Extensions
Also, incase the provided links break, or someone else like me is just looking for a quick and simple crosswalk / definition set for the error codes in the future, here you go:

UNKNOWN = 0,
// Invalid id of the extension.
INVALID_ID = 1,
// Error during parsing extension individual settings.
// The extension is marked as replaced by ARC app.
// Malformed extension dictionary for the extension.
// The extension format from extension dict is not supported.
// Invalid file path in the extension dict.
// Invalid version in the extension dict.
// Invalid updated URL in the extension dict.
// The extension doesn't support browser locale.
// The extension marked as it shouldn't be installed.
// Profile is older than supported by the extension.
// The extension can't be installed for enterprise.
// The extension is already installed.
// The download of the crx failed.
// Failed to fetch the manifest for this extension.
// The manifest couldn't be parsed.
// The manifest was fetched and parsed, and there are no updates for this
// extension.
NO_UPDATE = 17,
// The crx was downloaded, but failed to install.
// Corresponds to CrxInstallErrorType.
// Extensions without update url should receive a default one, but somewhy
// this didn't work. Internal error, should never happen.
// Extension failed to add to PendingExtensionManager.
// ExtensionDownloader refuses to start downloading this extensions
// (possible reasons: invalid ID/URL).
// Extension (at the moment of check) is not installed nor some installation
// error reported, so extension is being installed now, stuck in some stage
// or some failure was not reported. See enum Stage for more details.
// This option is a failure only in the sense that we failed to install
// extension in required time.
IN_PROGRESS = 24,
// The download of the crx failed. In past histograms, this error has only
// occurred when the update check status is "no update" in the manifest. See
// crbug/1063031 for more details.
// The download of the crx failed.
// Applying the ExtensionSettings policy changed installation mode from
// force-installed to anything else.
// The extension is marked as replaced by system app.
// Magic constant used by the histogram macros.
// Always update it to the max value.
}

Reply all
Reply to author
Forward
0 new messages