Contents

Problem

An RFC 9457 problem document.

Fields

  • type required Type: string

    https://unforged.sh/problems/<code>

  • title required Type: string
  • status required Type: integer
  • detail required Type: string
  • code required Type: "invalid_request" "unsupported_media" "too_large" "fetch_failed" "rate_limited" "quota_exceeded" "idempotency_conflict" "internal" "not_found" "unauthorized" "permission_denied" "timeout" "not_available_in_dev" "method_not_allowed" "conflict" "busy" "not_ready" "idempotency_in_progress" "idempotency_key_required" "idempotency_not_replayable" "not_implemented" "not_allowlisted" "tenant_not_provisioned" "billing_required" "invalid_signature" "billing_already_active" "invalid_version" "org_suspended" "wrong_region" "org_moving" "learning_terms_required" "webhook_test_failed" "awaiting_first_payment" "reason_required" "access_suspended" "storage_provisioning" "address_not_allowed"

    A stable error code.

  • request_id optional Type: string
  • region optional Type: string

    On wrong_region, your home region.

  • api_host optional Type: string

    On wrong_region, that region's API host.

  • address optional Type: string

    On address_not_allowed, the address your request came from.

  • terms_version optional Type: string

    On learning_terms_required, the version to accept.

  • job_id optional Type: string

    On busy or timeout of a check that continues.

  • status_url optional Type: string
  • host optional Type: string

    On a failed URL fetch, the host.

  • reason optional Type: string

    On a failed URL fetch, why (e.g. http_status, timeout). On org_suspended, idle when the organisation was removed for inactivity (it can start again).

  • checks optional Type: object

    On not_ready.

  • errors optional Type: any[]

    On a synchronous check whose job failed.

Example
{
  "type": "https://unforged.sh/problems/not_found",
  "title": "Not found",
  "status": 404,
  "detail": "job not found",
  "code": "not_found",
  "request_id": "req_01j9x3m8v7k2q4r5s6t7u8v9w0"
}