{"record":{"id":"f22e2e405fbca67a","repo":"oven-sh/bun","slug":"no-unit-data-in-path","errorCode":null,"errorMessage":"no UNIT_DATA in ${path}","messagePattern":"no UNIT_DATA in (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"scripts/rust-timings.ts","lineNumber":93,"sourceCode":"}\ninterface Unit {\n  i: number;\n  name: string;\n  version: string;\n  target: string;\n  start: number;\n  duration: number;\n  /** Units unblocked when this unit's rlib is done. */\n  unblocked_units: number[];\n  /** Units unblocked when this unit's rmeta is done (pipelining). */\n  unblocked_rmeta_units: number[];\n  sections?: [string, Section][];\n}\n\nfunction parseTimingsHtml(path: string): { units: Unit[]; total: number } {\n  const html = readFileSync(path, \"utf8\");\n  const m = html.match(/const UNIT_DATA = (\\[[\\s\\S]*?\\n?\\]);/);\n  if (!m) throw new Error(`no UNIT_DATA in ${path}`);\n  const units: Unit[] = JSON.parse(m[1]);\n  const total = units.length === 0 ? 0 : Math.max(...units.map(u => u.start + u.duration));\n  return { units, total };\n}\n\n/**\n * Time at which this unit unblocks downstream rmeta-dependents. For a\n * pipelined rlib that's when the frontend finishes (rmeta written), not\n * when codegen is done.\n */\nfunction rmetaEnd(u: Unit): number {\n  const fe = u.sections?.find(s => s[0] === \"frontend\");\n  return u.start + (fe ? fe[1].end : u.duration);\n}\n\nfunction section(u: Unit, name: string): number {\n  const s = u.sections?.find(x => x[0] === name);\n  return s ? s[1].end - s[1].start : 0;","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/oven-sh/bun/blob/8c5296ac459e8252d3cd702f3fbcbb0c249d95d5/scripts/rust-timings.ts#L75-L111","documentation":"Error \"no UNIT_DATA in ${path}\" thrown in oven-sh/bun.","triggerScenarios":"Thrown at scripts/rust-timings.ts:93 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8c5296ac459e8252d3cd702f3fbcbb0c249d95d5","analyzedAt":"2026-08-16T08:01:58.794Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}