Activation Not Cancellable
URI: https://docs.ankatech.co/errors/activation-not-cancellable
HTTP Status: 409 Conflict
When you see this
A platform administrator asked to cancel a pending membership whose person has activated before. A person is one identity holding a membership per tenant; only an invitation of an identity that has never held a usable credential can be cancelled. A person who already holds a credential — they are a member of another tenant — accepts a pending membership by signing in, and that invitation is withdrawn by the tenant removing the membership, never cancelled from the platform plane.
The decision rests on one persisted fact: whether the identity has an activation instant. It is set the first time the identity holds a usable credential, signs in through an identity provider into an active membership, or accepts an invitation, and it is never cleared. The Pending Activations list projects the same fact as kind: this refusal answers every row whose kind is ACCEPTANCE.
Common Causes
- The person is already a member of another tenant. Adding them to this tenant created a PENDING membership they accept by signing in (
kind = ACCEPTANCE). - The person has already signed in through an identity provider. A federated sign-in that redeemed the invitation, bound a declared account or entered an active membership recorded the activation, even though no password was ever set.
- The row was read as an invitation because it appears on the Pending Activations list. That list holds both kinds; only
INVITATIONrows are cancellable.
Response Example
{
"type": "https://docs.ankatech.co/errors/activation-not-cancellable",
"title": "Activation Not Cancellable",
"status": 409,
"detail": "This account has activated before, so its pending activation cannot be cancelled. Recover it instead: issue a new activation link (regenerateActivationTokenCrossTenant) or force a password reset (forcePasswordReset).",
"instance": "/api/v3/admin/platform/users/tenants/123e4567-e89b-12d3-a456-426614174000/users/7c9e6679-7425-40de-944b-e07fc1f90ae7/pending-activation",
"timestamp": 1765128600,
"extensions": {
"requestId": "3f1c2a9e-4b7d-4e2a-9c11-0a2b3c4d5e6f"
}
}
Content-Type: application/problem+json — the response follows RFC 9457 Problem Details. The detail is one fixed sentence for every account in this state; it names the recovery operations and nothing about the account.
How to Resolve
- Do not retry the cancel: the identity's activation instant never clears, so the refusal is permanent for this membership.
- To re-send the invitation, use
regenerateActivationTokenCrossTenant(POST /api/v3/admin/platform/users/tenants/{tenantId}/users/{userId}/regenerate-activation-token). - To withdraw it, the tenant's own administrators remove the membership through the tenant-plane user deletion; the person's identity and other memberships are untouched.
Nothing was changed by the refused request: the membership, its link and the person's sessions are as they were, and no audit event was recorded.
For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.