Node.js or npm is missing
The CLI requires Node.js 20.3 or newer and ships through npm.npx can run the CLI, the package and Node.js version are usable even when a global airscale command is unavailable.
airscale: command not found
First confirm that the package is installed globally:
PATH. Restart the shell after changing its startup file, or keep using npx @airscale/cli without a global install.
Upgrade the CLI
Check your installed version, then update a global installation:npx @airscale/cli@latest --help. Version 0.2.1 keeps existing credentials, command flags, and saved enrichment state compatible.
Output destination rejected
Forcredits, people search, companies search, runs status, and runs wait, version 0.2.1 checks --output before authentication or API requests. A directory or a destination that cannot be written causes exit 2. Choose a filename in a writable directory and rerun the command. Existing files are not truncated during validation.
Version 0.2.0 can discover this error after a paid search has already run. If that happened, inspect API request logs before repeating the search; upgrading does not recover the previous response. A filesystem change after validation can still make the final write fail.
Include the request ID when asking for help
Version 0.2.1 retains sanitized request IDs from API failures when the server provides them. Include therequest_id, command shape, CLI version, exit code, and redacted stderr in a support report. A failure before the server supplies an ID may have none. Never include an API key.
Paid search failures remain ambiguous and are not automatically retried. Inspect the request logs before starting another search.
Missing API key
The messageNo Airscale API key configured. means neither AIRSCALE_API_KEY nor a saved credential is available.
In an interactive terminal, store a key through the hidden prompt:
AIRSCALE_API_KEY through the platform’s secret manager. Do not put a key in a command argument, repository, log, or shell history.
Invalid API key
An invalid API key normally produces exit code3 after a 401 response. AIRSCALE_API_KEY takes precedence over a saved credential. Check whether the environment variable exists without printing its value:
airscale auth login to replace the saved credential. Then retry:
auth status succeeds, its output reports the credential source and a short fingerprint. On a 401, it exits before emitting that status object. Rotate the dashboard key when it was exposed; logging out only removes the local saved credential.
Invalid CSV or JSONL
Validate locally without authentication, output, or credit spend:- headers are unique after trimming, lowercasing, and converting spaces or hyphens to underscores;
- quoting is balanced;
- every row has
linkedin_profile_url, orfirst_nameandlast_namewithdomainorcompany_name; - explicit
custom_idvalues are unique.
custom_id rules. The CLI reports row-level identity and JSONL errors together before making an HTTP request.
Credit confirmation or budget failure
Fresh paid work needs explicit confirmation when stdin is not an interactive terminal:--max-credits accepts a plain positive decimal up to 9,007,199,254,740,991. Scientific notation, Infinity, hexadecimal, and signed values are rejected. The flag caps exposure but does not confirm spend. If the estimate exceeds the cap, reduce --size or --limit, refine the input, or deliberately raise the cap. If available credits are too low, no paid request starts.
File enrichment also requires a real output path for paid execution:
Resume an interrupted enrichment
Ctrl-C stops local upload, polling, or download work and exits130; it does not cancel the server run. Run the original command again with --resume:
*.airscale-state.json file until completion. If the CLI reports a stale .airscale-lock, inspect the recorded PID and remove the lock only after that process has stopped.
An unknown start handoff is preserved for inspection and is not replayed automatically. Use the saved exp_… identifier for a free read:
Use guided setup
airscale setup is an opt-in onboarding command for an interactive terminal:
/credits check. It does not accept non-interactive input; in that case it exits before reading credentials or making an HTTP request.
Enable shell completion
Shell completion is opt in. Inspect the generated script first:A result pipeline is empty
Version 0.2.0 writes tables, JSON, JSONL, CSV, and--output - to stdout. Progress and errors remain on stderr.
--quiet when progress messages are unwanted; errors remain visible.
If the issue persists, capture the command shape, CLI version, exit code, and redacted stderr. Never include the API key or a full credential value.