{"record":{"id":"8dca6206e76d8137","repo":"GoogleChrome/lighthouse","slug":"invalid-expanded-gatherer","errorCode":null,"errorMessage":"Invalid expanded Gatherer: ","messagePattern":"Invalid expanded Gatherer: ","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"core/config/config-helpers.js","lineNumber":419,"sourceCode":"  const gathererDefn = expandGathererShorthand(gathererJson);\n  if (gathererDefn.instance) {\n    return {\n      instance: gathererDefn.instance,\n      implementation: gathererDefn.implementation,\n      path: gathererDefn.path,\n    };\n  } else if (gathererDefn.implementation) {\n    const GathererClass = gathererDefn.implementation;\n    return {\n      instance: new GathererClass(),\n      implementation: gathererDefn.implementation,\n      path: gathererDefn.path,\n    };\n  } else if (gathererDefn.path) {\n    const path = gathererDefn.path;\n    return requireGatherer(path, coreGathererList, configDir);\n  } else {\n    throw new Error('Invalid expanded Gatherer: ' + JSON.stringify(gathererDefn));\n  }\n}\n\n/**\n * Take an array of audits and audit paths and require any paths (possibly\n * relative to the optional `configDir`) using `resolveModule`,\n * leaving only an array of AuditDefns.\n * @param {LH.Config['audits']} audits\n * @param {string=} configDir\n * @return {Promise<Array<LH.Config.AuditDefn>|null>}\n */\nasync function resolveAuditsToDefns(audits, configDir) {\n  if (!audits) {\n    return null;\n  }\n\n  const coreList = Runner.getAuditList();\n  const auditDefnsPromises = audits.map(async (auditJson) => {","sourceCodeStart":401,"sourceCodeEnd":437,"githubUrl":"https://github.com/GoogleChrome/lighthouse/blob/9515cd4e58ebed69f78742d932b501c2cab8ad8f/core/config/config-helpers.js#L401-L437","documentation":"Error \"Invalid expanded Gatherer: \" thrown in GoogleChrome/lighthouse.","triggerScenarios":"Thrown when a gatherer definition expanded from shorthand config is still not a valid gatherer.","commonSituations":"See trigger scenarios.","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: {...}}."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9515cd4e58ebed69f78742d932b501c2cab8ad8f","analyzedAt":"2026-08-13T06:28:10.346Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}