{"record":{"id":"94c2ef5f86938a65","repo":"GoogleChrome/lighthouse","slug":"no-speedline-frames","errorCode":"NO_SPEEDLINE_FRAMES","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":42,"sourceCode":"      // See https://github.com/GoogleChrome/lighthouse/issues/2333\n      const traceEvents = trace.traceEvents.slice();\n      // Force use of timeOrigin as reference point for speedline\n      // See https://github.com/GoogleChrome/lighthouse/issues/2095\n      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":24,"sourceCodeEnd":56,"githubUrl":"https://github.com/GoogleChrome/lighthouse/blob/9515cd4e58ebed69f78742d932b501c2cab8ad8f/core/computed/speedline.js#L24-L56","documentation":"Thrown as a LighthouseError with code NO_SPEEDLINE_FRAMES from Speedline.compute_() when speedline resolves successfully but returns a result with zero frames (speedline.frames.length === 0). This is distinct from NO_SCREENSHOTS: speedline ran without error but produced no usable frame data. The check at line 42 in the .then handler triggers the throw.","triggerScenarios":"Speedline.request() runs speedline() which resolves without rejection, but the resulting speedline object has an empty frames array. The .then() callback checks `speedline.frames.length === 0` and throws NO_SPEEDLINE_FRAMES.","commonSituations":"The trace contains some trace events but they are malformed, partial, or from a non-standard capture that speedline cannot parse into frames. Incomplete trace where screenshot events exist but lack the data needed to construct visual frames. Edge cases where speedline's internal parsing succeeds technically but yields empty results.","solutions":["Re-run the audit — this is often caused by incomplete or corrupted trace collection","Ensure Chrome captures the full page load from navigation start to load event","If collecting traces manually, verify trace completeness and category configuration","Use the latest stable Chrome and Lighthouse versions to avoid parsing edge cases"],"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 === 'NO_SPEEDLINE_FRAMES') {\n    // Speedline produced no frames — Speed Index not available\n    return { notApplicable: true, reason: 'NO_SPEEDLINE_FRAMES' };\n  }\n  throw e;\n}","preventionTips":["Ensure traces are complete and captured over a full page load lifecycle","Use standard stable Chrome builds to avoid trace parsing edge cases","Re-run audits when speedline returns degenerate results","Handle NO_SPEEDLINE_FRAMES as a soft failure in metric pipelines"],"tags":["speedline","screenshots","trace","performance","metrics"],"backgroundTag":null,"analyzedSha":"9515cd4e58ebed69f78742d932b501c2cab8ad8f","analyzedAt":"2026-08-13T06:28:10.346Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}