GoogleChrome/lighthouse · error · Error
Invalid expanded Gatherer:
Error message
Invalid expanded Gatherer:
What it means
Error "Invalid expanded Gatherer: " thrown in GoogleChrome/lighthouse.
Source
Thrown at core/config/config-helpers.js:419
const gathererDefn = expandGathererShorthand(gathererJson);
if (gathererDefn.instance) {
return {
instance: gathererDefn.instance,
implementation: gathererDefn.implementation,
path: gathererDefn.path,
};
} else if (gathererDefn.implementation) {
const GathererClass = gathererDefn.implementation;
return {
instance: new GathererClass(),
implementation: gathererDefn.implementation,
path: gathererDefn.path,
};
} else if (gathererDefn.path) {
const path = gathererDefn.path;
return requireGatherer(path, coreGathererList, configDir);
} else {
throw new Error('Invalid expanded Gatherer: ' + JSON.stringify(gathererDefn));
}
}
/**
* Take an array of audits and audit paths and require any paths (possibly
* relative to the optional `configDir`) using `resolveModule`,
* leaving only an array of AuditDefns.
* @param {LH.Config['audits']} audits
* @param {string=} configDir
* @return {Promise<Array<LH.Config.AuditDefn>|null>}
*/
async function resolveAuditsToDefns(audits, configDir) {
if (!audits) {
return null;
}
const coreList = Runner.getAuditList();
const auditDefnsPromises = audits.map(async (auditJson) => {View on GitHub (pinned to 9515cd4e58)
Solutions
- Provide the gatherer as an object with an `implementation` (or `instance`) property.
- Check the gatherer definition in your config matches the expected shape: {implementation: GathererClass, options: {...}}.
When it happens
Trigger: Thrown when a gatherer definition expanded from shorthand config is still not a valid gatherer.
Common situations: See trigger scenarios.
AI-assisted analysis of GoogleChrome/lighthouse@9515cd4e58 (2026-08-13).
Data as JSON: /api/errors/8dca6206e76d8137.
Report an issue: GitHub.