stars CLI reports every failure as a structured diagnostic: a stable code, a short explanation of why it
happened, and — when there’s something you can do about it — a concrete fix. This page documents every code
@wolfstar/cli can raise on its own; stars.config.* loading and validation errors are documented separately under
Configuration Errors.
Exit codes
PREPARE_OUTDATED
The generated project files are out of date. Fix: runstars prepare to update them.
TSCONFIG_LEGACY_EXTENDS
A warning, not an error: the command keeps running.stars prepare, stars doctor, stars dev, stars build, and
stars typecheck raise it when the project’s root tsconfig.json still extends ./.stars/tsconfig.json. From
future.compatibilityVersion 6, stars prepare no longer writes that file. It writes .stars/tsconfig.app.json and
.stars/tsconfig.node.json instead.
Fix: replace the root tsconfig.json with a solution-style file that references the generated configs:
future.compatibilityVersion to 5 to keep the single .stars/tsconfig.json. See
Generated TypeScript configuration.
TYPECHECK_FAILED
stars typecheck found type errors in one or more projects. The message lists the failing projects, and the
checker’s own output above it shows the errors.
Fix: fix the reported type errors, then run stars typecheck again.
TYPECHECK_NO_PROJECT
stars typecheck found no tsconfig to check in the project root.
Fix: create src/tsconfig.json or tsconfig.json, or set dev.typecheck.tsconfig.
DISCORD_TOKEN_MISSING
DISCORD_TOKEN is not set.
Fix: set DISCORD_TOKEN in the environment or in the project’s .env file.
DISCORD_APPLICATION_ID_MISSING
The Discord application id is not set. Fix: setDISCORD_APPLICATION_ID (or APPLICATION_ID) in the environment or in the project’s .env file.
DISCORD_REQUEST_FAILED
Discord answered with an error status while the CLI was calling the Discord API (for example while pushing or listing commands). Fix: a401 status means the token is wrong — check DISCORD_TOKEN. Any other status means the application id
or the bot’s permissions are wrong.
BUILD_FAILED
The build step failed, optionally with the underlying build tool’s own error message attached. This is the one CLI error with its own exit code:3.
COMMAND_NOT_FOUND
No deployed command, subcommand, or group matches the name(s) or path(s) passed tostars commands clean --name.
Fix: run stars commands list to see what’s currently deployed.
ABORTED
An interactive prompt was cancelled.CONFIRMATION_REQUIRED
stars commands delete refuses to delete commands without an explicit confirmation.
Fix: pass --yes to delete them without prompting, or --name to pick a single command, when running from a
script.
DEPLOY_CONFIRMATION_REQUIRED
stars commands deploy refuses to overwrite the deployed commands without a confirmation. It raises this outside a
terminal, or with --json.
Fix: pass --yes to deploy from a script or with --json.
COMMANDS_DIFFER
stars commands diff --check found deployed commands that differ from the ones the project defines. The message
includes how many differ.
Fix: run stars commands deploy to deploy them.
LOCAL_COMMANDS_UNAVAILABLE
stars commands diff or stars commands deploy could not read the commands the project defines. The message includes
the reason, for example a project that is not built or a framework older than @wolfstar/http-framework 6.1.
Fix: the message includes the fix for the reason it reports.
DOCTOR_FAILED
stars doctor found at least one failing check. The message includes how many checks failed, and the command exits
with code 1.
Fix: follow the fix stars doctor prints under each failing check.
UNKNOWN_SHELL
stars completions was given a shell it has no completions for.
Fix: use one of bash, zsh, or fish.
INVALID_OPTION
A command was given an unknown value for one of its flags:--layout, --style, --port, --host, --port-conflict,
or --level for stars dev, or --only for stars codegen.
Fix: use one of the values the message lists. --layout accepts auto, dashboard, or panel. --style
accepts nuxt-style, dashboard, or none. --port accepts an integer from 1 to 65535. --host accepts an IP address or hostname. --port-conflict accepts
prompt, next, error, or continue. --level accepts trace, debug, info, warn, or error. --only
accepts i18n or commands.
PORT_IN_USE
stars dev found the development listener port already occupied, and it couldn’t ask what to do. This happens with
dev.portConflict: 'error' (or --port-conflict error), or with the default prompt policy in CI, with piped input,
or with TERM=dumb.
Fix: stop the other server, pick another port with --port <1..65535>, or set --port-conflict next or
--port-conflict continue (dev.portConflict in stars.config). See
Port conflicts.
PORT_CHECK_FAILED
stars dev couldn’t check whether the listener host and port are free, because binding them failed for another reason
than the port being occupied (for example, a missing permission or an unknown address). The message includes the host,
port, and bind error.
Fix: check the local address (HTTP_ADDRESS or --host) and your permission to bind it, or pick another port with --port.
NO_AVAILABLE_PORT
With thenext policy, or the “use the next available port” prompt choice, stars dev tried up to 100 ports above the
occupied one and found none free.
Fix: stop a server you no longer need, or pick another starting port with --port.
DEV_DIRECTORY_UNWRITABLE
Before building,stars dev couldn’t write to one of its output, generated-file, or log directories. The directory
can’t be created or written, a file blocks its path, or no parent directory exists. The message names the path and
the reason.
Fix: use a writable directory, grant write and search access to it, or remove the file blocking it.
INVALID_THEME
stars dev was given a theme it doesn’t know.
Fix: use one of the themes it lists as available.
CODEGEN_OUTDATED
Generated files (i18n types, etc.) are out of date. Fix: runstars codegen to update them.
CODEGEN_GENERATOR_DISABLED
stars codegen --only <generator> named a generator that is off in stars.config, so nothing would have been
checked.
Fix: turn codegen.<generator> on, or leave the generator out of --only.
DEPENDENCY_MISSING
A dependency the current configuration needs (for exampletsdown or vite) isn’t installed in the project root.
Fix: the message names the missing package and where to install it.
CODEGEN_FAILED
i18next-type-generator exited with a non-zero code, optionally with its stderr output attached.
MODULE_FAILED
A module listed inmodules in stars.config could not be installed. The message carries the underlying
ModuleError code and the module’s name. Exits with code 2.
Fix: depends on the underlying code:
MODULE_LOAD_FAILED: install the module in the project, or fix its specifier inmodules.MODULE_INCOMPATIBLE: update the module or@wolfstar/http-frameworkso their versions match.MODULE_INVALID: export the module withdefineModulefrom@wolfstar/kitas the default export, and give itsmetaaname. Ameta.configKeymust be a non-empty string that is not a built-instars.configkey or used by another module, and the value under it must be an object.MODULE_PLUGIN_INVALID: passctx.addPlugina package specifier, an absolute path or afile:URL, and JSON-serialisable options.MODULE_PIECES_INVALID: passctx.addPiecesDiran absolute path or afile:URL, such asnew URL('./pieces', import.meta.url).MODULE_HOOK_INVALID: use one of theclient:*hook names, declare each name once per module, and give the hook by source (a package specifier, an absolute path, afile:URL, or{ from, export }), not as a function.MODULE_LOCALES_INVALID: passctx.addLocalesan absolute path or afile:URL to a directory that exists and is readable when the module is set up.- Otherwise: fix the error the module threw (see the cause), or remove it from
modules.
MODULES_PRELOAD_REQUIRED
A warning fromstars build, stars prepare, and stars info. The project uses the tsc or none build tool and
its modules add runtime plugins, pieces directories, locales, or client hooks. Those are registered through
node --import, which only stars dev does for you.
Fix: start the production bot with node --import ./.stars/modules.mjs <entry>. stars prepare and stars build
write that file.
PLUGINS_NOT_REGISTERED
A warning fromstars build, stars prepare, stars dev, stars info, and stars doctor. The project sets
future.compatibilityVersion: 7, which registers only the modules in modules. An installed @wolfstar/plugin-*
dependency that no module covers is no longer activated through its /register import, so it never runs. The message
names those plugins.
Fix: one of:
- List the plugin in
modulesonce its package exports a module, such as'@wolfstar/plugin-i18next/module'. - Import the plugin in the bot yourself.
- Set
future.compatibilityVersionback to6.
VARLOCK_LOADER_IMPLICIT
A warning fromstars prepare, stars build, stars dev, and stars info. The project has a varlock .env.schema
and varlock is installed, so @wolfstar/env-utilities loads the environment through varlock. stars.config does not
set env.loader or env.path.
Fix: run stars doctor --fix to set env: { loader: 'varlock' }, or add it to stars.config by hand. See
Fix the configuration.
VARLOCK_NOT_INSTALLED
A warning fromstars prepare, stars build, stars dev, and stars info. The project has a varlock .env.schema,
but varlock is not installed, so the bot loads the dotenv files instead.
Fix: install varlock (for example pnpm add varlock), or remove the .env.schema.