DropplinkDocsPowered bydropp.

SDK

Handling errors

What each error means and whether to retry.

Errors use one shape:

{ "error": { "code": "stale_timestamp", "message": "…", "details": [{ "path": "installId", "message": "Invalid UUID" }] } }

Switch on code, never on message.

Signing errors (401)#

codeMeaningWhat the app should do
missing_signatureA signing header is missingFix the client
bad_timestampNot whole seconds (milliseconds land here)Fix the client
stale_timestampMore than 5 minutes from server timeRetry with backoff; log a clock warning in debug builds
invalid_keyUnknown or revoked key, or the app was deletedStop sending; log loudly in debug builds
bad_signatureWrong secret, or the body changed after signingFix the client

Only stale_timestamp can succeed on retry.

Other errors#

StatuscodeWhat the app should do
400validation_failedA field is wrong; details lists each one. Fix the client.
400platform_mismatchThe body's platform doesn't match the key. Use the right platform's key.
413fst_err_ctp_body_too_largeThe body is over 64 KB.
5xx, network error—Retry on the next launch.
Something unclear? Tell us.Powered bydropp.