Quick reference: see Exit codes for the full code table. The error message envelope on stderr is documented in Output format.
Authentication failures (exit 3)
Symptom: “Not logged in. Run ‘talkvalue auth login’ to authenticate.”
TALKVALUE_TOKEN is set in the environment and no saved profile exists for the current shell.
Fix:
Symptom: “Session expired. Run ‘talkvalue auth login’ to re-authenticate.”
The OAuth profile exists but the refresh token has lapsed. Fix:Symptom: “Server did not return a refresh token. Please try logging in again.”
A login race or revoked session prevented the server from issuing a refresh token. Fix: re-runtalkvalue auth login. If it persists, sign out first to clear local state:
Symptom: “Device code expired before authorization”
The sign-in code fromauth login was not approved in the browser before its TTL elapsed.
Fix: run talkvalue auth login again and approve the code promptly.
Symptom: “Multiple organizations available. Use —org <name-or-id> to select one.”
Your account belongs to more than one organization and the login flow can’t pick one. Fix:Not found (exit 4)
Symptom: “<entity> <id> not found”
- Confirm the active organization with
talkvalue auth status. - Switch organizations if needed:
talkvalue auth switch "Other Org". - List the resource to confirm the ID:
Forbidden (exit 5)
Symptom: a 5 exit code with a permission-style message
- Ask an organization admin to grant the necessary role.
- Confirm you’re authenticated as the correct identity with
talkvalue auth status.
Usage errors (exit 2)
Symptom: a required flag is missing
import create, see import create.
Symptom: an enum value is invalid
import create accepts UPDATE or SKIP; other commands list their allowed values in the error and on the leaf page.
Symptom: out-of-range argument count
audience accepts 2 to 5 --channel-id flags; others bound themselves similarly.
Symptom: “File not found” or “Permission denied” on import analyze
ls, fix permissions with chmod, or pass an absolute path.
Symptom: “Unsupported output format”
--format accepts only json, table, or csv.
Fix: use one of the three. See Output format.
Network and rate-limit failures (exit 1)
Symptom: “Request failed with status 429”
You hit the API rate limit. Fix: the CLI already retries429, 502, 503, and 504 automatically with exponential backoff, and honors the server’s Retry-After header up to 60 seconds. If you still see a 429 after retries, slow your script:
Symptom: “Request failed with status 5xx” or timeout
- Wait and retry.
5xxerrors usually self-heal in seconds. - Check the API status at status.trytalkvalue.com.
- If you’re overriding the API host, confirm
TALKVALUE_API_URLand--api-urlpoint at the right environment.
Symptom: a generic network error or TypeError
A transient connectivity issue between your machine and the API.
Fix: the CLI auto-retries network failures. If it persists, check your proxy or VPN configuration, then re-run.
CSV import problems
Symptom: “Creating an import requires at least one —mapping”
You skipped the mapping step. Fix: runimport analyze first to see the suggested mapping, then pass it back to import create:
Symptom: job status is PARTIAL_SUCCESS and failedCount > 0
Some rows imported, some were rejected.
Fix: export the rejected rows, fix the data, and re-import:
errorCode values:
INVALID_EMAIL: the email column has a malformed value. Fix the address.MISSING_REQUIRED: the email column is empty for that row. Add an email or drop the row.
Symptom: job status is FAILED and processedRows is 0
The whole job failed before any rows landed. Usually a malformed file, an invalid fileKey, or a source-channel permission issue.
Fix:
- Re-run
import analyze. It returns a freshfileKeyand surfaces file-level errors. - Confirm the
source-idchannel exists and you have access:talkvalue path channel get <id>. - Reduce the file to the first 10 rows and retry to isolate which rows trigger the failure.
Unexpected output
Symptom: --json or --format was ignored on an export command
person export, event person export, channel export, import failed-export) always stream raw CSV. They ignore the global format flags.
Fix: drop --json / --format and consume the CSV directly, or use the matching list command if you specifically need JSON.
Symptom: colored output in CI logs
ANSI color codes are leaking into a log aggregator that can’t render them. Fix:Still stuck?
- Run any command with
--helpfor the full flag list. - Check the latest CLI version:
talkvalue update. - Email support@trytalkvalue.com with the exact command, the stderr message, and the exit code from
echo $?.
Related
- Exit codes. Full table.
- Output format. Error envelope shape on stderr.
- Authentication. Credentials, profiles, and
TALKVALUE_TOKEN. - Environment variables. Every env var the CLI reads.
- Recipe: CSV import. Happy-path import workflow with failure recovery.
