quasarframework/quasar · error

Quasar App Extension is missing...

Error message

Quasar App Extension is missing...

What it means

AppExtensionInstance.run() executes the extension's index script (its hooks/IndexAPI surface). If the extension's npm package is not installed, it warns and calls process.exit(1), terminating the Quasar CLI command — the extension cannot be invoked at all without its package.

Source

Thrown at app-vite/lib/app-extension/AppExtensionInstance.js:296

    this.#appExtJson.remove(this.extId)

    if (skipPkgUninstall !== true) {
      await this.#uninstallPackage()
    }

    this.logger.log('Removed App Extension')

    if (hooks && hooks.exitLog.length !== 0) {
      hooks.exitLog.forEach(msg => {
        console.log(msg)
      })
      console.log()
    }
  }

  async run() {
    if (!this.isInstalled) {
      this.logger.warn('Quasar App Extension is missing...')
      process.exit(1)
    }

    const script = await this.#getScript('index', true)

    const api = new IndexAPI(
      {
        ctx: this.#ctx,
        extId: this.extId,
        prompts: this.getPrompts(),
        packageDir: dirname(fileURLToPath(this.#packageParentUrl))
      },
      this.#appExtJson
    )

    this.logger.log('Running...')
    await script(api)

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Install the extension: quasar ext add <ext-id> or pnpm add -D <ext-package>
  2. Remove the stale extension from quasar.config (extensions) / `quasar ext remove` if you no longer want it
  3. Check package manager output for why the package failed to install (registry auth, network, peer conflicts)
  4. Verify node_modules contains the package before re-running the command

Example fix

// before (quasar.config.js) referencing uninstalled ext
extensions: ['icon-genie'] // not in package.json
// after: install it first
// pnpm add -D @quasar/quasar-app-extension-icon-genie
extensions: ['icon-genie']
Defensive patterns

Strategy: validation

Validate before calling

// before invoking ext commands, verify each configured extension is installed
const fs = require('fs')
const cfg = require('./quasar.config.js')
for (const ext of cfg.extensions ?? []) {
  const dir = `node_modules/@quasar/quasar-app-extension-${ext}`
  if (!fs.existsSync(dir)) {
    console.error(`Missing extension package: ${ext} — run: quasar ext add ${ext}`)
    process.exit(1)
  }
}

Prevention

When it happens

Trigger: An extension listed in quasar.config's extensions (or .quasar/app-ext.json) but its npm package is missing from node_modules when `quasar ext run`/invoke-related commands call run().

Common situations: Fresh clone without `pnpm install`; extension removed from package.json but still referenced in quasar.config; private/registry package failing to install (auth or network); dependency installed under a different workspace than the one running the CLI.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/c94eb01304c68516. Report an issue: GitHub.