Run the doctor
When something goes wrong, start withneetoinvoice doctor. It checks your authentication, API connection, and CLI version.
Common errors
When a command fails, it prints an error message to standard error and exits with status 1. Usage errors such as an unknown flag or a missing argument addRun 'neetoinvoice --help' for usage.
Not authenticated. Run 'neetoinvoice login' to authenticate.
Not authenticated. Run 'neetoinvoice login' to authenticate.
Solution: run
neetoinvoice login --subdomain <name>.Multiple subdomains authenticated (acme, beta); specify --subdomain.
Multiple subdomains authenticated (acme, beta); specify --subdomain.
Solution: add
--subdomain <name> to the command. For logout, --all signs out of every workspace.Not authenticated for "foo". Authenticated subdomains: acme, beta.
Not authenticated for "foo". Authenticated subdomains: acme, beta.
--subdomain value does not match any signed-in workspace. Solution: use one of the listed subdomains, or sign in to the new one.
Subdomain not found. Please check that you entered the correct subdomain.
Subdomain not found. Please check that you entered the correct subdomain.
neetoinvoice login could not find a workspace at <subdomain>.neetoinvoice.com. Solution: use the first part of your workspace URL. For
https://spinkart.neetoinvoice.com, enter spinkart.Authentication session expired. Please try again.
Authentication session expired. Please try again.
NeetoInvoice CLI authentication timed out after 5 minutes. Please try again. means the CLI stopped waiting. Solution: run
neetoinvoice login again and approve the sign-in in the browser. If the browser does not open, visit the URL the CLI prints.Could not connect to NeetoInvoice. Check your internet connection
Could not connect to NeetoInvoice. Check your internet connection
Solution: check your network and run
neetoinvoice doctor. If NEETOINVOICE_BASE_URL is set, confirm it points at a reachable server.required flag(s) "xxx" not set
required flag(s) "xxx" not set
Solution: check the command’s reference page or run
neetoinvoice <command> --help for the required flags. For commands that accept --json-file, a key in the file satisfies the matching flag.Could not read file <path> / Invalid JSON in <path>
Could not read file <path> / Invalid JSON in <path>
--json-file path does not exist, is not readable, or does not contain a JSON object. Solution: check the path and validate the file, for example with
jq . <path>.API error (422): <message>
API error (422): <message>
API error (<status>): <message>, one line per additional error, and a Suggestion: line for common statuses: 401 (sign in again), 403 (no permission), 404 (check the ID), 422 (check required fields with --help), and 429 (rate limited, wait and retry). Solution: follow the suggestion. For 401, run
neetoinvoice login to refresh the session.Nothing to update. Pass at least one of --email, --first-name, --last-name, --time-zone or --role.
Nothing to update. Pass at least one of --email, --first-name, --last-name, --time-zone or --role.
team-members update was run with no change flags. Solution: pass at least one of the listed flags.
Editing a time entry fails because it is already billed
Editing a time entry fails because it is already billed
Solution: leave the entry as it is and adjust the invoice instead.
Claude Code not found (~/.claude/ does not exist).
Claude Code not found (~/.claude/ does not exist).
neetoinvoice setup claude requires Claude Code to have been run at least once. Solution: install and open Claude Code, then run the command again.
Permission errors
The CLI acts as the signed-in user, not as the workspace, so commands are limited by what your role allows. Viewing other users’ time entries, managing monthly PTO, and overriding autolock are each gated separately. ForAPI error (403), ask a workspace admin to adjust your role, or run the equivalent REST API call with a workspace API key.
Check the version
neetoinvoice update.