Start here
Most problems come down to which credential and organization a command is using. Check with:- Credential source says whether the key comes from your saved login (
local context, with the key in the OS keychain) or fromSABAOTH_API_KEY. If the environment variable is set, your saved login is ignored. - Selected org is the organization commands act in unless you pass
--org.
--json to see the exact error code, then look it up in Error codes.
sabaoth: command not found
npm’s global install folder isn’t on your PATH.
- Find the folder:
npm prefix --global. The command lives in itsbinsubfolder on macOS and Linux, or in the folder itself on Windows. - Add that folder to your
PATHin your shell profile (~/.zshrc,~/.bashrcor similar), then open a new terminal.
Unsupported Node.js version
The CLI needs Node.js 22.12 or later, below 25. Check withnode --version and upgrade or switch versions, then reinstall the CLI.
”The API key was rejected”
API_KEY_UNAUTHORIZED means the API didn’t accept the key.
- Make sure you copied the whole key, starting with
mpg_, with no spaces. - Check on the API Keys page that the key is active and hasn’t expired or been revoked.
- If
SABAOTH_API_KEYis set, it’s the key being used, even if you’ve logged in. Check it withecho "${SABAOTH_API_KEY:0:8}", orunset SABAOTH_API_KEYto fall back to your saved login. - Create a new key and run
sabaoth loginagain.
The keychain is unavailable
CREDENTIAL_STORE_UNAVAILABLE means the CLI couldn’t reach the OS keychain. It never falls back to a plain-text file, so nothing was saved, read or removed.
- macOS
- Linux
- Windows
Unlock your login keychain, for example by opening Keychain Access. If you’re connected over SSH, the keychain may be locked for that session; run
security unlock-keychain first.”No Organization is selected”
You haven’t logged in on this machine, or you logged out of the selected organization. Runsabaoth login, or sabaoth org use <org-id> if you’re already logged in to another organization. In CI, set SABAOTH_API_KEY.
”grants access to more than one Organization”
Your key covers several organizations and the CLI won’t guess. Add--org <org-id> to the command, using one of the IDs in the error message.
A service I can see in the dashboard is “not found”
The CLI looks only in the effective organization, and reports services elsewhere as not found.- Run
sabaoth configto see which organization is selected. - Switch with
sabaoth org use <org-id>, or add--org <org-id>to the command. - Check that you’re using the service ID (
clu_...), not its name.
A command hangs or asks for confirmation in CI
Commands that create, delete or back up ask for confirmation. In CI there’s no terminal, so they fail withCONFIRMATION_REQUIRED instead of hanging. Add --yes.
”The request was sent but no result was received”
UNKNOWN_MUTATION_OUTCOME means the change may or may not have happened. Don’t just run the command again:
- After
postgres create, runsabaoth postgres listand look for the service. - After
postgres delete, runsabaoth postgres get <service-id>. - After
backup create, runsabaoth backup list <service-id>.
Log streaming keeps reconnecting
Reconnecting to the log stream on stderr means the connection dropped and the CLI is reconnecting on its own. Brief reconnects are normal. If it keeps happening:
- Too many log streams may be open in your organization at once. Close others, including ones in the dashboard.
- Check your network connection, especially through a VPN or proxy that closes long-lived connections.
”Another sabaoth process is updating”
CONTEXT_LOCK_TIMEOUT means another sabaoth process is saving the context file. Wait and retry. If no other process is running, a previous one may have been killed mid-save; delete the context.json.lock file next to the context file.
Start fresh
To clear everything the CLI has stored on this machine:sabaoth folder at the context file location and run sabaoth login again.
Still stuck?
Contact support with:- The command you ran and its full output (with
--jsonif you can) - The
Request IDfrom the error, if there is one - Your CLI version (
sabaoth --version), Node.js version and OS