# Diagnose: org invitation failures

## Symptom

Invitee clicks the link and gets "invitation not found/expired", or accepts but is not in the org.

## Likely causes

1. Expired: invitations expire after 7 days. Old links die.
2. Email mismatch: the invite is bound to an email; logging in with a different email (or a social account with a different email) fails acceptance.
3. Already accepted or already a member: re-invites error.
4. The accept login did not carry the organization context (invitation + organization params both required on the authorize call).
5. Connection mismatch: invite specifies a connection; user authenticated via another.

## Confirm

- Organizations > your org > Members > Pending invitations: status and expiry.
- Tenant logs: the failed acceptance event names the reason (expired, email mismatch).
- The login event: does it carry the organization id? If not, the app dropped the context.

## Fix

- Resend the invitation for expired ones; confirm the email matches the user's login identity first.
- Have the app pass both `invitation` and `organization` on the authorize call.
- For high-volume onboarding, switch to just-in-time membership on the org's connections and skip invites entirely.

## Verify

New invite to a test email, accept in incognito, confirm membership in the dashboard and the organization claim in the token.