Skip to main content

Error Handling

WispHive returns concise production errors designed for client-side branching and operational debugging.

Error envelope

{
"error": "registration not found",
"status": 400
}

Some routes also include X-Request-ID response headers for operational trace correlation.

Status codes

StatusMeaningTypical cause
201CreatedIntegration was provisioned successfully
200AcceptedCallback or redirect orchestration succeeded
302RedirectBrowser is being redirected to the provider or the signed return URL
308Permanent redirectLegacy docs aliases redirected to /
401UnauthorizedMissing or invalid API key header
400Validation errorMissing field, unsupported registration type, invalid URL, UUID, or token
404Not foundUnknown route or unavailable documentation build
413Payload too largeRequest exceeded configured size limit
503Dependency unavailableEvent publishing infrastructure or runtime dependency unavailable

Validation messages you should handle

MessageMeaning
registration not foundThe submitted registration_id does not exist
registration type is not supported for oauth integrationsOnly SME, education, and ISP registrations are supported
oauth_client_secret is requiredHosted OAuth integrations currently require confidential client credentials
captive_portal_url is requiredNo portal URL was provided and none could be derived from the registration
idempotency key is requiredAAA callbacks must provide Idempotency-Key
api key is requiredMissing X-API-Key on protected API endpoints
api key is invalidProvided API key did not match an active key
integration callback is invalidThe callback URL path or token does not map to an active integration
wisphive_token is requiredMissing callback signing credential
userid is requiredMissing stable user UUID
derived_username is requiredMissing derived username alias
derived_email is requiredMissing derived email alias
derived_email must use the assigned derived email domainThe callback used an email outside the entity's assigned *.id.wisphive.net domain
user_session_id is requiredMissing user session identifier
derived_username must use the assigned derived name prefixThe callback used a username outside the entity's assigned namespace
sensitive user fields are not accepted in aaa handoff; use derived_username, derived_email, and user_session_idThe callback included direct user data such as email or display name

Client guidance

  • Do not retry 400 responses unchanged.
  • Retry 503 responses with exponential backoff.
  • Treat callback URLs and signing tokens as secrets.