{"record":{"id":"b26b3087eaeb2ec6","repo":"quasarframework/quasar","slug":"applying-the-quasar-config-changes-failed","errorCode":null,"errorMessage":"Applying the quasar.config changes failed","messagePattern":"Applying the quasar\\.config changes failed","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app-vite/lib/cmd/dev.js","lineNumber":110,"sourceCode":"  `../modes/${argv.mode}/${argv.mode}-devserver.js`\n)\nconst devServer = new QuasarModeDevserver({ argv, ctx })\n\nif (typeof quasarConf.build.beforeDev === 'function') {\n  await quasarConf.build.beforeDev({ quasarConf })\n}\n\n// run possible beforeDev hooks\nawait ctx.appExt.runAppExtensionHook('beforeDev', async hook => {\n  hook.api.logger.log(`Running beforeDev hook...`)\n  await hook.fn(hook.api, { quasarConf })\n})\n\nconst onQuasarConfChange = qConf => {\n  log('Applying quasar.config changes...')\n  devServer.run(qConf).catch(err => {\n    console.error(err)\n    warn('Applying the quasar.config changes failed')\n  })\n}\n\nawait devServer.run(quasarConf)\n\nif (typeof quasarConf.build.afterDev === 'function') {\n  await quasarConf.build.afterDev({ quasarConf })\n}\n\n// run possible afterDev hooks\nawait ctx.appExt.runAppExtensionHook('afterDev', async hook => {\n  hook.api.logger.log(`Running afterDev hook...`)\n  await hook.fn(hook.api, { quasarConf })\n})\n\nquasarConfFile.watch(onQuasarConfChange)\n","sourceCodeStart":92,"sourceCodeEnd":127,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/cmd/dev.js#L92-L127","documentation":"In `quasar dev`, when quasar.config.js changes the onQuasarConfChange handler re-runs the dev server with the new config via devServer.run(qConf). If that re-run rejects, the underlying error is console-logged and this warning is shown, leaving the dev server in a failed state for that config.","triggerScenarios":"Saving quasar.config.js during `quasar dev` with a config that fails to build/apply: invalid option values, unsupported plugin/framework option, bad vite config merge, or a devserver hook that throws.","commonSituations":"Typo in a config key (e.g. misspelled plugin name), switching boot/plugin files to a nonexistent path, invalid vite plugin added to extendViteConf, incompatible devServer options changed at runtime.","solutions":["Read the console.error(err) output printed right before this warning for the root cause","Fix the invalid value in quasar.config.js and save again to re-apply","Validate the config with `quasar prepare` or a fresh `quasar dev` restart if hot-apply keeps failing","Check recently added/changed options against the documented schema for your Quasar version"],"exampleFix":"// before (quasar.config.js)\nframework: { plugins: ['MetaTypos'] }\n// after\nframework: { plugins: ['Meta'] }","handlingStrategy":"validation","validationCode":"// sanity-check config before saving during dev\nimport { quasarConfigSchema } from './schema' // or run `quasar prepare`\nconst valid = quasarConfigSchema.safeParse(myQuasarConfig)\nif (!valid.success) console.error(valid.error)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["After editing quasar.config.js, read the full console.error stack above the warning","Validate config with `quasar prepare` before iterating in dev","Change one config option at a time so the failing one is obvious","Verify plugin/boot file paths and framework plugin names exist for your Quasar version"],"tags":["dev","quasar-config","hot-reload"],"backgroundTag":"invalid-quasar-config","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}