Skip to main content

Overview

This page lists every error shipd returns and how to fix it: shipd exit codes and error codes, the control-plane API error envelope, edge API statuses, and the errors the shipdit SDK throws or reports to onError. For symptoms such as “my flag isn’t updating”, start with Troubleshooting.

CLI exit codes

Exit codes are defined per command in the CLI reference.

CLI error codes

Human output prints Error: <message> on stderr. With --json, stderr gets:
Errors from the API keep their control-plane code. The CLI adds these on its own:

Control-plane API errors

Every non-success response from https://api.useshipd.com/api/v1 has this envelope. Stack traces are never returned.
Retry, idempotency, and pagination rules are in Control-plane API.

Push conflict messages

shipd push returns these 409 conflict messages. None of them applies any part of the push.

Edge API statuses

Returned by https://edge.useshipd.com/sdk/v1. The SDK handles all of them without throwing. See Edge API.

SDK errors

Thrown errors

Only these throw. Evaluation methods (isEnabled, getVariant, getNumber, getJson) never throw, and ready() never rejects for network errors.

onError messages

Background failures go to the onError option as Error objects. The client keeps serving the last good snapshot, a cached or bootstrapped snapshot, or defaults.
Related: CLI reference · Control-plane API · Edge API · SDK reference · Reliability and data