{"record":{"id":"115d61928d92cbff","repo":"GoogleChrome/lighthouse","slug":"missing-required-artifact-115d61","errorCode":"MISSING_REQUIRED_ARTIFACT","errorMessage":"Required {artifactName} gatherer did not run.","messagePattern":"Required (.+?) gatherer did not run\\.","errorType":"exception","errorClass":"LighthouseError","httpStatus":null,"severity":"error","filePath":"core/runner.js","lineNumber":375,"sourceCode":"    const audit = auditDefn.implementation;\n    const status = {\n      msg: `Auditing: ${format.getFormatted(audit.meta.title, 'en-US')}`,\n      id: `lh:audit:${audit.meta.id}`,\n    };\n    log.time(status);\n\n    let auditResult;\n    try {\n      if (artifacts.PageLoadError) throw artifacts.PageLoadError;\n\n      // Return an early error if an artifact required for the audit is missing or an error.\n      for (const artifactName of audit.meta.requiredArtifacts) {\n        const noArtifact = artifacts[artifactName] === undefined;\n\n        if (noArtifact) {\n          log.warn('Runner',\n              `${artifactName} gatherer, required by audit ${audit.meta.id}, did not run.`);\n          throw new LighthouseError(\n            LighthouseError.errors.MISSING_REQUIRED_ARTIFACT, {artifactName});\n        }\n\n        // If artifact was an error, output error result on behalf of audit.\n        if (artifacts[artifactName] instanceof Error) {\n          /** @type {Error} */\n          const artifactError = artifacts[artifactName];\n\n          log.warn('Runner', `${artifactName} gatherer, required by audit ${audit.meta.id},` +\n            ` encountered an error: ${artifactError.message}`);\n\n          // Create a friendlier display error and mark it as expected to avoid duplicates in Sentry.\n          // The artifact error was already sent to Sentry in `collectPhaseArtifacts`.\n          const error = new LighthouseError(LighthouseError.errors.ERRORED_REQUIRED_ARTIFACT,\n              {artifactName, errorMessage: artifactError.message}, {cause: artifactError});\n          // @ts-expect-error Non-standard property added to Error\n          error.expected = true;\n          throw error;","sourceCodeStart":357,"sourceCodeEnd":393,"githubUrl":"https://github.com/GoogleChrome/lighthouse/blob/9515cd4e58ebed69f78742d932b501c2cab8ad8f/core/runner.js#L357-L393","documentation":"Error \"Required {artifactName} gatherer did not run.\" thrown in GoogleChrome/lighthouse.","triggerScenarios":"Raised by the runner when an artifact required by the config was not gathered.","commonSituations":"See trigger scenarios.","solutions":["Ensure the named gatherer is included in the active config (check onlyAudits/onlyCategories filters).","If using a custom config, add the artifact's gatherer to the pass configuration.","Re-run without skipping the gatherer via skipAudits."],"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"}