{"record":{"id":"9350c423562cb069","repo":"GoogleChrome/lighthouse","slug":"speedindex-of-zero","errorCode":"SPEEDINDEX_OF_ZERO","errorMessage":"Chrome didn't collect any screenshots during the page load. Please make sure there is content visible on the page, and then try re-running Lighthouse. ({errorCode})","messagePattern":"Chrome didn't collect any screenshots during the page load\\. Please make sure there is content visible on the page, and then try re-running Lighthouse\\. \\((.+?)\\)","errorType":"exception","errorClass":"LighthouseError","httpStatus":null,"severity":"error","filePath":"core/computed/speedline.js","lineNumber":46,"sourceCode":"      const timeOrigin = processedTrace.timestamps.timeOrigin;\n      return speedline(traceEvents, {\n        timeOrigin,\n        fastMode: true,\n        include: 'speedIndex',\n      });\n    }).catch(err => {\n      if (/No screenshots found in trace/.test(err.message)) {\n        throw new LighthouseError(LighthouseError.errors.NO_SCREENSHOTS);\n      }\n\n      throw err;\n    }).then(speedline => {\n      if (speedline.frames.length === 0) {\n        throw new LighthouseError(LighthouseError.errors.NO_SPEEDLINE_FRAMES);\n      }\n\n      if (speedline.speedIndex === 0) {\n        throw new LighthouseError(LighthouseError.errors.SPEEDINDEX_OF_ZERO);\n      }\n\n      return speedline;\n    });\n  }\n}\n\nconst SpeedlineComputed = makeComputedArtifact(Speedline, null);\nexport {SpeedlineComputed as Speedline};\n","sourceCodeStart":28,"sourceCodeEnd":56,"githubUrl":"https://github.com/GoogleChrome/lighthouse/blob/9515cd4e58ebed69f78742d932b501c2cab8ad8f/core/computed/speedline.js#L28-L56","documentation":"Thrown as a LighthouseError with code SPEEDINDEX_OF_ZERO from Speedline.compute_() when speedline resolves with frames but computes a speedIndex of exactly 0. A zero Speed Index is mathematically impossible for a real page load (it would mean all content was painted at time 0), so it indicates a degenerate or erroneous computation rather than a fast page. The check at line 46 fires the throw.","triggerScenarios":"Speedline.request() runs speedline() which resolves with a non-empty frames array but speedIndex === 0. The .then() callback checks this after the frames-length check passes, then throws SPEEDINDEX_OF_ZERO.","commonSituations":"All screenshot frames have identical or zero timestamps, causing speedline to compute zero time-to-visual-completeness. Traces from pages that paint instantly or where frame timestamps are corrupted/unset. Edge cases with very fast or cached page loads where speedline's algorithm degenerates. Malformed trace data from non-standard Chrome builds.","solutions":["Re-run the audit — this is frequently a transient trace quality issue","Disable aggressive caching or use incognito mode to ensure a realistic page load for trace capture","Verify Chrome is a standard stable build (not a custom Chromium fork) to ensure correct trace timestamps","If this persists, the Speed Index metric may be unreliable for this specific page/URL"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  const speedline = await Speedline.request(trace, context);\n} catch (e) {\n  if (e instanceof LighthouseError && e.code === 'SPEEDINDEX_OF_ZERO') {\n    // Degenerate speed index — Speed Index unreliable for this page\n    return { notApplicable: true, reason: 'SPEEDINDEX_OF_ZERO' };\n  }\n  throw e;\n}","preventionTips":["Re-run the audit — a zero Speed Index is usually a transient trace quality issue","Disable aggressive caching or use incognito for realistic page load timing","Use standard Chrome stable builds to ensure correct trace timestamps","Handle SPEEDINDEX_OF_ZERO as a soft failure in metric aggregation"],"tags":["speedline","speed-index","trace","performance","metrics"],"backgroundTag":null,"analyzedSha":"9515cd4e58ebed69f78742d932b501c2cab8ad8f","analyzedAt":"2026-08-13T06:28:10.346Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}