{"record":{"id":"d692a1bfd28b7622","repo":"sveltejs/kit","slug":"manifest-data-params-does-not-export-params-f","errorCode":null,"errorMessage":"${manifest_data.params} does not export `params` from `defineParams`","messagePattern":"(.+?) does not export `params` from `defineParams`","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/kit/src/exports/vite/dev/generate_manifest.js","lineNumber":204,"sourceCode":"\t\t\t\t\tpage: route.page,\n\t\t\t\t\tendpoint: endpoint\n\t\t\t\t\t\t? async () => {\n\t\t\t\t\t\t\t\tconst url = path.resolve(root, endpoint.file);\n\t\t\t\t\t\t\t\treturn await loud_ssr_load_module(vite, vite_dev_server, runner, url);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: null,\n\t\t\t\t\tendpoint_id: endpoint?.file\n\t\t\t\t};\n\t\t\t})\n\t\t),\n\t\tmatchers: async () => {\n\t\t\tif (!manifest_data.params) return {};\n\n\t\t\tconst url = path.resolve(root, manifest_data.params);\n\t\t\tconst module = await runner.import(url);\n\n\t\t\tif (!module.params) {\n\t\t\t\tthrow new Error(`${manifest_data.params} does not export \\`params\\` from \\`defineParams\\``);\n\t\t\t}\n\n\t\t\treturn module.params;\n\t\t}\n\t};\n}\n\n/**\n * @param {typeof import('vite')} vite\n * @param {ViteDevServer} vite_dev_server\n * @param {ModuleRunner} runner\n * @param {string} url\n * @returns {Promise<Record<string, any>>}\n */\nexport async function loud_ssr_load_module(vite, vite_dev_server, runner, url) {\n\ttry {\n\t\treturn await runner.import(url);\n\t} catch (/** @type {any} */ err) {","sourceCodeStart":186,"sourceCodeEnd":222,"githubUrl":"https://github.com/sveltejs/kit/blob/03f1687fe612ce3d2d9131139b5b188d9cf90c64/packages/kit/src/exports/vite/dev/generate_manifest.js#L186-L222","documentation":"When generating the dev manifest, SvelteKit imports the file configured as route `params` (written with `defineParams`) and reads its `params` export. If the module resolves but does not export `params`, this error is thrown. It means the params definition file exists but doesn't follow the required `defineParams` API.","triggerScenarios":"A `params` file referenced in route config (e.g. `src/params/shape.ts`) that imports `defineParams` but never assigns it to a `params` export, or exports under a different name (`export default` instead of `export const params = ...`).","commonSituations":"Hand-writing a params validator after copying a snippet incompletely; renaming `export const params` during refactoring; TypeScript file that only type-exports; stale file created by scaffolding tools.","solutions":["Ensure the file contains `export const params = defineParams({ ... })`","Check the default export isn't used where a named `params` export is required","Verify the file path in the manifest matches the intended params module","Restart the dev server after editing params files so the module is re-imported"],"exampleFix":"// before\nimport { defineParams } from '@sveltejs/kit';\ndefineParams({ id: 'number' });\n// after\nimport { defineParams } from '@sveltejs/kit';\nexport const params = defineParams({ id: 'number' });","handlingStrategy":"validation","validationCode":"// In src/params/*.ts, verify the export exists:\nif (!('params' in (await import('./params/shape.ts')))) {\n  throw new Error('params module must export `params` from defineParams');\n}","typeGuard":"function exportsParams(mod) {\n  return typeof mod === 'object' && mod !== null && 'params' in mod;\n}","tryCatchPattern":"try {\n  const mod = await import('$lib/params/shape');\n  if (!mod.params) throw new Error('missing `params` export');\n} catch (err) {\n  console.error('Invalid params module:', err.message);\n}","preventionTips":["Always write `export const params = defineParams({...})` — never bare defineParams or default export","Run a quick build after creating params files","Restart dev server after editing params modules"],"tags":["vite","dev","params","module-export"],"backgroundTag":"missing-named-export","analyzedSha":"03f1687fe612ce3d2d9131139b5b188d9cf90c64","analyzedAt":"2026-09-02T02:01:50.504Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}