What it means
Something on our side failed in a way we didn’t anticipate. We never leak internal details indetail — but every 500 is logged with full context,
and the instance field matches the X-Request-Id header so we can find
the exact request in our logs.
What to do
- Retry with exponential backoff.
500-class responses are typically transient. Start at 1 second, double up to a cap of 30 seconds, give up after ~5 attempts. - Keep the
X-Request-Id. If the error persists, send it to admin@digitalseaservice.com. We can pull the exact request in seconds. - Check status.digitalseaservice.com before raising — if we’re in an incident, you’re not alone and we’re already on it.
- Don’t surface the raw error to end users. The
instanceis for your engineers. Show users a generic “Couldn’t reach Digital Sea Service — please retry in a moment” message.
Idempotency
All V1 endpoints are read-only (GET), so retrying a 500 is always safe.
When we add write endpoints in V2 they’ll require explicit idempotency
keys — until then, just retry.

