{"record":{"id":"0759e73d3cdbbaf6","repo":"gatsbyjs/gatsby","slug":"err-0759e7","errorCode":null,"errorMessage":"${err}","messagePattern":"\\$\\{err\\}","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"packages/gatsby/src/utils/start-server.ts","lineNumber":110,"sourceCode":"  const createIndexHtml = async (activity: ActivityTracker): Promise<void> => {\n    try {\n      const { rendererPath, close } = await buildRenderer(\n        program,\n        Stage.DevelopHTML,\n        activity.span\n      )\n      await doBuildPages(\n        rendererPath,\n        [`/`],\n        activity,\n        workerPool,\n        Stage.DevelopHTML\n      )\n      // close the compiler\n      await close()\n    } catch (err) {\n      if (err.name !== `WebpackError`) {\n        report.panic(err)\n        return\n      }\n      report.panic(\n        report.stripIndent`\n          There was an error compiling the html.js component for the development server.\n          See our docs page on debugging HTML builds for help https://gatsby.dev/debug-html\n        `,\n        err\n      )\n    }\n  }\n  const indexHTMLActivity = report.phantomActivity(`building index.html`, {})\n\n  let pageRenderer: string\n  if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n    const { buildRenderer } = require(`../commands/build-html`)\n    pageRenderer = (await buildRenderer(program, Stage.DevelopHTML))\n      .rendererPath","sourceCodeStart":92,"sourceCodeEnd":128,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/8b06340921ffdf23125a365b9c9923690cb62ce6/packages/gatsby/src/utils/start-server.ts#L92-L128","documentation":"The non-Webpack branch of the html.js build catch in start-server. While building the develop-HTML bundle (`Stage.DevelopHTML`) any thrown error whose `name` is not `WebpackError` is re-thrown verbatim via `report.panic(err)`. Because the value is the raw error object, the rendered message is just `${err}`. Webpack-emitted errors fall through to the friendlier 309 message instead.","triggerScenarios":"`doBuildPages`/`close()` for the develop-HTML stage throws something that is not a WebpackError — e.g. a plugin `onCreatePage`/SSR error, a Node fs error reading html template, a native crash, or a thrown string/object without a `.name` of `WebpackError`.","commonSituations":"A custom HTML/SSR API (gatsby-ssr.js) throwing during develop-HTML render; a corrupt public/.cache; missing html.js source after an upgrade; plugin incompatibility during SSR.","solutions":["Inspect the full error object in the terminal — the `${err}` message is often the only clue; look at the stack trace lines above the panic.","Temporarily disable custom `gatsby-ssr.js`/`gatsby-browser.js` and plugins to isolate which one throws.","Run `gatsby clean` and retry.","If the error originates from a plugin, update or pin the plugin to a version compatible with your Gatsby major.","See https://gatsby.dev/debug-html for the structured debug flow."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"function isWebpackError(err) {\n  return err != null && err.name === 'WebpackError'\n}","tryCatchPattern":"// Mirror Gatsby's branch so non-webpack failures surface their real shape.\ntry {\n  await doBuildPages(rendererPath, ['/'], activity, workerPool, Stage.DevelopHTML)\n} catch (err) {\n  if (isWebpackError(err)) {\n    console.error('HTML.js compile error (see https://gatsby.dev/debug-html):', err)\n  } else {\n    console.error('Unexpected develop-HTML failure:', err)\n  }\n  throw err\n}","preventionTips":["Isolate SSR code: keep gatsby-ssr.js minimal and tested separately.","Pin plugins to versions compatible with your Gatsby major.","Read the raw stack above the panic line; the generic message hides the cause."],"tags":["dev-server","html","ssr","webpack","develop"],"backgroundTag":null,"analyzedSha":"8b06340921ffdf23125a365b9c9923690cb62ce6","analyzedAt":"2026-08-13T02:36:21.405Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}