{"record":{"id":"43e1c0016f79ee72","repo":"quasarframework/quasar","slug":"pwa-support-detected-already-aborting","errorCode":null,"errorMessage":"PWA support detected already. Aborting.","messagePattern":"PWA support detected already\\. Aborting\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/lib/modes/pwa/pwa-installation.js","lineNumber":25,"sourceCode":"  ensureModePackageJsonAndWorkspace,\n  isModeInstalled\n} from '../modes-utils.js'\n\n/**\n * @param {{\n *   ctx: import('../../../types/configuration/context').InternalQuasarContext,\n *   silent: boolean\n * }} options\n */\nexport async function addMode({ ctx, silent }) {\n  const { appPaths, cacheProxy } = ctx\n\n  if (isModeInstalled(appPaths, 'pwa')) {\n    const forceInstall = await ensureModePackageJsonAndWorkspace('pwa', ctx)\n    await ensureModeDeps('pwa', ctx, forceInstall)\n\n    if (silent !== true) {\n      warn('PWA support detected already. Aborting.')\n    }\n\n    return\n  }\n\n  const promptSession = await createPromptSession('Installing PWA Mode...')\n\n  const copyTask = promptSession.taskLog({ title: 'Creating /src-pwa...' })\n\n  await copyModeWorkspace('pwa', ctx)\n  fse.copySync(appPaths.resolve.cli(`templates/pwa/common`), appPaths.pwaDir)\n  fse.copySync(\n    appPaths.resolve.cli('templates/pwa/icons'),\n    appPaths.resolve.app('public/icons'),\n    {\n      overwrite: false\n    }\n  )","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/pwa/pwa-installation.js#L7-L43","documentation":"Warning emitted by `quasar mode add pwa` when PWA support is already installed. addMode detects the existing mode via isModeInstalled(appPaths, 'pwa'), optionally refreshes its dependencies, warns, and returns without re-scaffolding. It is a controlled abort, not a failure.","triggerScenarios":"Running `quasar mode add pwa` when the project already contains src-pwa. Also fires when dev/build commands with the PWA mode internally call addMode on an already-configured project and silent is not true.","commonSituations":"Re-running the add command after a previous install; CI or documentation-following scripts that run `quasar mode add pwa` unconditionally; running `quasar dev -m pwa` on a project already set up for PWA.","solutions":["No fix needed — proceed with `quasar dev -m pwa` or `quasar build -m pwa`.","If src-pwa deps are stale, force a dependency refresh (delete the service-work related deps or use the force flag) so ensureModeDeps reinstalls them.","If src-pwa is corrupted, remove it and run `quasar mode add pwa` again."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"import { existsSync } from 'node:fs'\nimport { join } from 'node:path'\nif (!existsSync(join(process.cwd(), 'src-pwa'))) {\n  await execa('quasar', ['mode', 'add', 'pwa'])\n}\nawait execa('quasar', ['build', '-m', 'pwa'])","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Guard `quasar mode add pwa` behind an src-pwa existence check in scripts.","Keep setup docs/scripts conditional so re-runs don't re-add existing modes.","If PWA deps break, force dependency refresh rather than removing/re-adding blindly."],"tags":["pwa","mode-installation","cli","already-installed"],"backgroundTag":"quasar-mode-already-installed","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}