Skip to main content

Run the doctor

When something goes wrong, start with neetoinvoice doctor. It checks your authentication, API connection, and CLI version.
When multiple workspaces are signed in, name the one to check:

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 add Run 'neetoinvoice --help' for usage.
Problem: no workspace is signed in.
Solution: run neetoinvoice login --subdomain <name>.
Problem: more than one workspace is signed in, so the target is ambiguous.
Solution: add --subdomain <name> to the command. For logout, --all signs out of every workspace.
Problem: the --subdomain value does not match any signed-in workspace.
Solution: use one of the listed subdomains, or sign in to the new one.
Problem: 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.
Problem: the browser sign-in was not approved before the session expired. 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.
Problem: the CLI could not reach the API.
Solution: check your network and run neetoinvoice doctor. If NEETOINVOICE_BASE_URL is set, confirm it points at a reachable server.
Problem: a required flag was omitted.
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.
Problem: the --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>.
Problem: the server rejected the request. The CLI prints 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.
Problem: team-members update was run with no change flags.
Solution: pass at least one of the listed flags.
Problem: the entry is on an invoice, and billed entries cannot be changed or deleted.
Solution: leave the entry as it is and adjust the invoice instead.
Problem: 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. For API 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

Prints the CLI version, commit hash, and build date - useful when reporting an issue. To upgrade, run neetoinvoice update.