err:unkey:authentication:portal_token_missingExample
What Happened?
This error occurs when a request was made to an endpoint that requires a Customer Portal session, but no access token was supplied. Portal-authenticated endpoints expect either:- An
httpOnlysession cookie set by the portal after a successful code exchange, or - An
Authorization: Bearer <portal-access-token>header on direct API calls from a browser session.
- The user’s browser has cookies disabled or blocked for the portal domain.
- The session was never established: the user landed on the portal without going through
POST /v2/portal.exchangeCode. - A backend integration is calling a portal-only endpoint with a root key instead of a portal access token.
- The session cookie was cleared or the user opened the portal in a private/incognito window with stripped state.
How To Fix
Make sure the user has an active portal session before calling portal endpoints:- From your backend, call
POST /v2/portal.createSessionwith your root key. - Redirect the user to the returned
url. The portal will redeem the code it carries for a 24-hour access token. - Subsequent requests from the browser must include the portal session cookie or access token.
Common Mistakes
- Calling portal endpoints with a root key: Root keys authenticate backend requests, not portal endpoints. Use a portal session.
- Sending the
idinstead of the access token:portal.createSessionreturns a non-secretid. It identifies the session but does not authenticate it. - Missing
credentials: "include": Cross-origin browser requests omit cookies by default. - Expired session not refreshed: After 24 hours the access token expires, so your backend must create a new session.
- Direct navigation to the portal: Users must arrive via your backend redirect, not by visiting the portal URL directly.
Related Errors
- err:unkey:authentication:portal_session_not_found - When a portal credential is provided but invalid, expired, or already used
- err:unkey:authentication:missing - When no authentication credentials are provided to a non-portal endpoint
- err:unkey:data:portal_not_found - When the portal referenced by
portaldoes not exist