GoogleChrome/lighthouse · error · LighthouseError
SPEEDINDEX_OF_ZERO
SPEEDINDEX_OF_ZERO
Error message
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}) What it means
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.
Source
Thrown at core/computed/speedline.js:46
const timeOrigin = processedTrace.timestamps.timeOrigin;
return speedline(traceEvents, {
timeOrigin,
fastMode: true,
include: 'speedIndex',
});
}).catch(err => {
if (/No screenshots found in trace/.test(err.message)) {
throw new LighthouseError(LighthouseError.errors.NO_SCREENSHOTS);
}
throw err;
}).then(speedline => {
if (speedline.frames.length === 0) {
throw new LighthouseError(LighthouseError.errors.NO_SPEEDLINE_FRAMES);
}
if (speedline.speedIndex === 0) {
throw new LighthouseError(LighthouseError.errors.SPEEDINDEX_OF_ZERO);
}
return speedline;
});
}
}
const SpeedlineComputed = makeComputedArtifact(Speedline, null);
export {SpeedlineComputed as Speedline};
View on GitHub (pinned to 9515cd4e58)
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
Defensive patterns
Strategy: try-catch
Try / catch
try {
const speedline = await Speedline.request(trace, context);
} catch (e) {
if (e instanceof LighthouseError && e.code === 'SPEEDINDEX_OF_ZERO') {
// Degenerate speed index — Speed Index unreliable for this page
return { notApplicable: true, reason: 'SPEEDINDEX_OF_ZERO' };
}
throw e;
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
AI-assisted analysis of GoogleChrome/lighthouse@9515cd4e58 (2026-08-13).
Data as JSON: /api/errors/9350c423562cb069.
Report an issue: GitHub.