Documentation
Error format
Last updated
Problem-details shape
All Farshore services return errors as RFC 9457 problem details (the successor to RFC 7807) with the media type application/problem+json. The base shape is consistent across every service:
{
"type": "https://farshorelabs.com/errors/<slug>",
"title": "Short, human-readable summary.",
"status": 400,
"detail": "Specific, actionable description of this occurrence.",
"instance": "/v1/availability/2026-05-22/9c1e9f2a",
"traceId": "00-4b3f...-a1...-01"
}Field-level validation errors include an errors object keyed by field name:
{
"type": "https://farshorelabs.com/errors/validation-failed",
"title": "Request validation failed.",
"status": 400,
"detail": "One or more fields are invalid.",
"errors": {
"region": ["'mars-central' is not a known Azure region."]
}
}Error catalog
| Status | Type slug | Meaning |
|---|---|---|
| 400 | validation-failed | Request payload or query parameters failed validation. |
| 401 | unauthenticated | No credential, or credential not recognised. Re-check the Authorization header. |
| 403 | subscription-required | Credential is valid but the caller does not have an active subscription for the requested service. |
| 403 | service-not-allowed | Credential is valid but not scoped to the requested service. |
| 404 | not-found | Requested resource (e.g. a specific record) does not exist. |
| 409 | conflict | Request conflicts with current state (e.g. activating a service that is already active). |
| 422 | unprocessable | Payload was syntactically valid but business rules rejected it. |
| 429 | quota-exceeded | Monthly quota exhausted. See Retry-After header. |
| 500 | internal | Unexpected server error. Safe to retry with backoff. |
| 503 | upstream-unavailable | An upstream data source (e.g. Azure pricing API) is failing. Retry with exponential backoff. |
Including a trace ID in support requests
Every response (success or failure) carries a W3C traceparent header. The same value appears in the traceId property of problem-details responses. Quote this ID when contacting support@farshorelabs.com so we can locate the request in our telemetry.