https://admin.handwrites.io. The staff pool and application are separate from customer, team and student identities. Staff API keys are not an authentication mechanism. The production session cookie is __Host-hwa_session, with HttpOnly, Secure, SameSite=Strict and Path=/; development uses hwa_session. The cookie value is opaque, while server storage identifies it by its hash. Absolute session lifetime is twelve hours; idle lifetime is thirty minutes. The session is bound to its recorded browser user agent and an active admitted staff account.{ "error": { "code": "...", "message": "..." } }. Keep Request-Id for diagnosis without retaining the request's secrets or customer content.| Condition | Client behavior |
|---|---|
| 401 unauthenticated or invalid credentials | Start the appropriate staff sign-in flow; do not substitute a customer token. |
| 403 forbidden | Explain the role restriction. Do not loop on reauthentication. |
| 403 step_up_required | Run the staff step-up UI, then deliberately retry the intended operation. |
| 400 reason_required | Ask for a reason for the specific target/action. |
| 403 csrf | Reload/refresh the session's page token and verify same-origin JSON. |
| 404 not_found | Recheck the selected target and access; do not enumerate identities. |
| 409 conflict | Refresh current state and preserve the user's intent; version/owner invariants may have changed. |
| 429 rate_limited | Honor Retry-After and stop repetitive submissions. |
| 502/503 service unavailable | Surface the failed dependency; reconcile before replaying an uncertain mutation. |