quasarframework/quasar · error
App Extension has no command called "${cmd}"
Error message
App Extension has no command called "${cmd}" What it means
`quasar run <extId> <cmd>` invokes a command registered by the App Extension. When the requested command name is not present in `hooks.commands`, the CLI prints the available command list, warns with the offending name and exits 1. This prevents silently executing nothing.
Source
Thrown at app-vite/lib/cmd/run.js:71
if (Object.keys(hooks.commands).length === 0) {
ext.logger.warn(`App Extension has no commands registered`)
return
}
const cmdList = Object.keys(hooks.commands).join(' | ')
ext.logger.log(`Command list: ${cmdList}`)
}
if (!cmd) {
list()
process.exit(0)
}
const fn = hooks.commands[cmd]
if (!fn) {
list()
warn()
ext.logger.warn(`App Extension has no command called "${cmd}"`)
warn()
process.exit(1)
}
ext.logger.log(`Running App Extension command "${cmd}"`)
log()
process.argv = [
...process.argv.slice(0, 2),
...process.argv.slice(4).filter(arg => arg !== '--no-color')
]
await fn(process.argv)
View on GitHub (pinned to 4841521b5f)
Solutions
- Use a listed command — the CLI prints `Command list: a | b | c` right before this warning; pick from those.
- Run `quasar run <extId>` with no command to re-list valid commands.
- Update the extension if its current version should provide the command: `quasar ext update <extId>`.
Example fix
// before quasar run @quasar/icon-genie build # no such command // after quasar run @quasar/icon-genie # lists commands, then: quasar run @quasar/icon-genie generate
Defensive patterns
Strategy: validation
Validate before calling
// discover valid commands first
const list = execSync(`quasar run ${extId}`).toString();
const cmds = (list.match(/Command list: (.*)/) || [])[1]?.split('|').map(s => s.trim()) ?? [];
if (!cmds.includes(cmd)) throw new Error(`unknown command ${cmd}; valid: ${cmds}`); Try / catch
try {
execSync(`quasar run ${extId} ${cmd}`, { stdio: 'inherit' });
} catch (err) {
if (String(err.stderr).includes('has no command called')) {
console.error(execSync(`quasar run ${extId}`).toString()); // print valid list
} else throw err;
} Prevention
- Run `quasar run <extId>` without a command to list valid commands first.
- Copy command names exactly (case-sensitive) from the extension docs.
- Pin/upgrade the extension version matching your documentation.
When it happens
Trigger: Running `quasar run <extId> <cmd>` where `hooks.commands[cmd]` is undefined — the extension is installed but exposes no command with that exact key (run.js:68-74).
Common situations: Typo or wrong casing in the command name; calling a command from an extension version that renamed it; copying a `quasar run` invocation from another project's docs.
Related errors
- Unknown action specified (${action}).
- Wrong number of parameters (${argv._.length}).
- Unknown action specified (${action}).
- No such App Extension is installed
- App Extension has no commands registered
AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30).
Data as JSON: /api/errors/70b3f8c560e3ba66.
Report an issue: GitHub.