Skip to content

Troubleshooting

Symptoms matched to exit codes and error codes, what each means, and where to go next.

Updated September 3, 20261 min readPostsale CLI

Use this page when a command fails or results look wrong. In this article, we will run quick checks, then match what you see to the exit code, error code, and detailed article.

Quick checks

  1. postsale doctor --human
  2. postsale account env
  3. postsale auth status
  4. Capture stdout for data and stderr for errors (postsale run puts progress on stderr)

Symptoms and what to do

SymptomLikely meaningWhat to do
Exit 100 / auth_requiredNot authenticatedSign In and Credentials
Exit 100 / api_key_unsupportedThe active credential is an API key and this command needs a login sessionauth login, or skip the command on the key; see Use an API key
Exit 100 / api_key_rejectedThe API key lacks a permission (missing_scopes) or was revoked, disabled, or is off-planGrant the permission in the Postsale app (about a minute), or issue a new key; logging in does not help
Exit 78 / terms_acceptance_requiredFirst house/USPS or Shipsurance label: the account owner must accept the carrier's termsRelay data.accept_url (or the in-app remediation) to the owner; see Shipping, labels and rates
Exit 101 / subscription_reactivation_requiredThe subscription is inactive; every billable request answers 402The owner reactivates at data.reactivate_url; nothing to retry until then
Exit 64 / test_label_requiredPOSTSALE_TEST_LABEL_MODE is set and a shipment in the purchase is not a test shipmentCreate the shipment under the mode (it is stamped), or unset the mode for real labels; see Test-label mode
Exit 64 / confirmation_requiredMoney or destructive needs authPass --yes or approve at TTY; see Safety
Exit 64 / swarm_authorization_requiredBatch gate (not fixed by --yes alone)[Parallel batches](../features/parallel batch.md); TTY batch approve or POSTSALE_SWARM_AUTOAUTH=1 only if pre-authorized
Exit 102 / validation_failedBad body / missing weight_unit / dimsIntent builders; read error.details
Exit 103 / rate_limitedToo many requestsWait retry_after; see env RPM settings
Exit 106 / request_timeoutBackend hungRetry; raise POSTSALE_HTTP_TIMEOUT_MS
Exit 75Network or doctor pre-flight warningsRetry; doctor --pre-flight details
Empty stdout + non-zero on runPreflight failed (LLM key, bad continue id, config)Read stderr; no envelope was produced
Zero orders, "success"Filter miss / wrong statusWork queue / empty results
Orders found, no shipment fieldsExpected domain joinOrders, Shipments, and Labels
Thought dry-run wrote nothingNon-intercepted writesDry-run; check confirmed_effects
Cheap quote, expensive labelQuote-only dimension estimateIntent builders
Void rejectedCarrier rulesVoid and Corrections
Unknown continue idBad conversation idpostsale conversations

Agent hosts

Full error.code recovery table: agent/errors.md and AGENTS.md.

Exit codes reference

Exit codes

Additional Reading