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

  1. Re-run the audit — this is frequently a transient trace quality issue
  2. Disable aggressive caching or use incognito mode to ensure a realistic page load for trace capture
  3. Verify Chrome is a standard stable build (not a custom Chromium fork) to ensure correct trace timestamps
  4. 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

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.