{"record":{"id":"f7c7403042b9fb41","repo":"anomalyco/sst","slug":"solidstart-s-nitro-config-ts-must-be-configured-to","errorCode":null,"errorMessage":"SolidStart's nitro.config.ts must be configured to use the \"cloudflare-module\" preset. It is currently set to \"${nitro.preset}\".","messagePattern":"SolidStart's nitro\\.config\\.ts must be configured to use the \"cloudflare-module\" preset\\. It is currently set to \"(.+?)\"\\.","errorType":"validation","errorClass":"VisibleError","httpStatus":null,"severity":"error","filePath":"platform/src/components/cloudflare/experimental/solid-start.ts","lineNumber":234,"sourceCode":"    name: string,\n    args: SolidStartArgs = {},\n    opts: ComponentResourceOptions = {},\n  ) {\n    super(__pulumiType, name, args, opts);\n  }\n\n  protected buildPlan(outputPath: Output<string>): Output<Plan> {\n    return outputPath.apply(async (outputPath) => {\n      // Make sure aws-lambda preset is used in nitro.json\n      const nitro = JSON.parse(\n        await fs.readFile(\n          path.join(outputPath, \".output\", \"nitro.json\"),\n          \"utf-8\",\n        ),\n      );\n\n      if (![\"cloudflare-module\"].includes(nitro.preset)) {\n        throw new VisibleError(\n          `SolidStart's nitro.config.ts must be configured to use the \"cloudflare-module\" preset. It is currently set to \"${nitro.preset}\".`,\n        );\n      }\n\n      // Make sure the server bundle is in the dist directory\n      if (\n        !(await existsAsync(\n          path.join(outputPath, \".output\", \"server\", \"index.mjs\"),\n        ))\n      ) {\n        throw new VisibleError(\n          `SSR server bundle \"index.mjs\" not found in the build output at:\\n` +\n            `  \"${path.resolve(outputPath, \".output\", \"server\")}\".\\n\\n` +\n            `If your SolidStart project is entirely pre-rendered, use the \\`sst.cloudflare.StaticSite\\` component instead of \\`sst.cloudflare.SolidStart\\`.`,\n        );\n      }\n\n      // Ensure `.assetsignore` file exists and contains `server`","sourceCodeStart":216,"sourceCodeEnd":252,"githubUrl":"https://github.com/anomalyco/sst/blob/a0bd20f762883e72a35caccb4896c42ce5b3f707/platform/src/components/cloudflare/experimental/solid-start.ts#L216-L252","documentation":"SolidStart deploys to Cloudflare Workers through Nitro, and SST only supports the `cloudflare-module` output preset. The build's generated `.output/nitro.json` reports a different preset, so SST refuses to proceed with an incompatible bundle.","triggerScenarios":"buildPlan reads `nitro.json` from `<outputPath>/.output/` and its `preset` field is anything other than \"cloudflare-module\" — e.g. `nitro.config.ts` sets `preset: 'cloudflare_pages'`, 'cloudflare', 'node-server', or the preset is left to an auto-detected default.","commonSituations":"Following older SolidStart/Nitro deployment docs that recommended `cloudflare_pages`; forgetting to set the preset at all; overriding preset via CLI flag (`nitro build --preset`) or environment variable; upgrading Nitro changed auto-detection.","solutions":["Set `preset: 'cloudflare-module'` in nitro.config.ts (or the nitro section of SolidStart config) and rebuild.","Remove any conflicting preset passed via CLI flags or environment variables (e.g. NITRO_PRESET).","Delete stale `.output` and run a clean rebuild so nitro.json reflects the new preset."],"exampleFix":"// before (nitro.config.ts)\nexport default defineNitroConfig({ preset: \"cloudflare_pages\" });\n// after\nexport default defineNitroConfig({ preset: \"cloudflare-module\" });","handlingStrategy":"validation","validationCode":"import { readFileSync, existsSync } from \"fs\";\nconst nitro = JSON.parse(readFileSync(\".output/nitro.json\", \"utf-8\"));\nif (nitro.preset !== \"cloudflare-module\") throw new Error(`Set preset: 'cloudflare-module', got ${nitro.preset}`);","typeGuard":"const usesCloudflareModule = (nitro: { preset?: string }) => nitro.preset === \"cloudflare-module\";","tryCatchPattern":"try {\n  new sst.cloudflare.SolidStart(app, \"Site\", {});\n} catch (e) {\n  if (String(e).includes(\"cloudflare-module\")) console.error(\"Fix nitro preset and rebuild\");\n  else throw e;\n}","preventionTips":["Pin `preset: 'cloudflare-module'` in nitro.config.ts.","Don't override preset via NITRO_PRESET or CLI flags in deploy scripts.","Check .output/nitro.json after each build before deploying."],"tags":["solidstart","nitro","cloudflare","preset","build-config"],"backgroundTag":"nitro-preset-not-supported","analyzedSha":"a0bd20f762883e72a35caccb4896c42ce5b3f707","analyzedAt":"2026-08-30T11:26:00.383Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}