API Error Catalog

Every Tasks Wiz API error is application/problem+json (RFC 7807). The type field links here, anchored on the machine-stable code. Branch on code, never on detail. Quote the request_id (also the X-Request-Id response header) when reporting an issue.

Example body:

{
  "type": "https://api.tasks-wiz.com/errors/task-not-found",
  "title": "Task not found",
  "status": 404,
  "code": "task_not_found",
  "detail": "No task with identifier 'abc-123' belongs to the caller.",
  "instance": "/tasks/abc-123",
  "request_id": "01HQ9X7M3E2VAFZ8N6KPYC4QR1"
}

Codes

codestatusmeaning & recommended client behavior
validation_error422One or more fields failed validation; see the errors[] array (per-field field/code/detail). Fix inputs; do not retry unchanged.
unauthorized401Missing/invalid bearer token. Refresh the Cognito token and retry once.
forbidden403Authenticated but not allowed. Do not retry.
not_found404Route or resource does not exist.
task_not_found404No task with that id belongs to the caller (cross-tenant ids are reported as not-found by design).
export_not_found404No export job with that id for the caller.
method_not_allowed405HTTP method unsupported for this resource; see the Allow header.
conflict409Request conflicts with current state.
email_already_verified409Resend-verification called but the email is already verified. Nothing to do.
stale_resource412Optimistic-concurrency failure: your If-Match ETag is stale. Refetch the resource and retry with the new ETag.
precondition_failed412A required precondition was not met.
confirm_delete_required428DELETE /account needs X-Confirm-Delete: <your account email> to proceed (CSRF-by-accident guard).
idempotency_key_reused422Same Idempotency-Key with a different request body. Use a fresh key or send the original body.
batch_too_large422Batch exceeds 50 items. Split the request.
invalid_cursor422Pagination cursor is malformed or failed signature verification. Restart pagination without a cursor.
invalid_if_match422If-Match is not a valid ETag. Send the quoted ETag from the resource's last response, e.g. "v3".
invalid_scope422DELETE /account/data scope must be completed_tasks or activities.
invalid_older_than422older_than must look like 90d.
rate_limit_exceeded429Per-user rate limit hit. Honor Retry-After and the X-RateLimit-* headers; back off.
verification_already_sent_today429A verification email was already sent today. Try again tomorrow.
internal_error500Unexpected server error (no stack trace leaked). Retry with backoff; if it persists, report the request_id.