---
title: "Verify a revoked invitation cannot create membership"
description: "Send an invitation, revoke it before acceptance, and verify the retained email link is unusable while a later newly issued invitation can still work."
canonical_url: "https://vostride.com/agent-library/organization-membership/revoke-pending-invitation.md"
md_url: "https://vostride.com/agent-library/organization-membership/revoke-pending-invitation.md"
content_kind: "recipe"
topic: "organization-membership"
---

# Verify a revoked invitation cannot create membership

Send an invitation, revoke it before acceptance, and verify the retained email link is unusable while a later newly issued invitation can still work.

## Risk

Removing a pending invitation row must revoke its underlying acceptance authority. An email already delivered cannot be recalled, so the old link is the important boundary rather than the administrator list alone.

## Fixtures

- A test organization administrator and an unjoined controlled recipient.
- A test inbox retaining the first invitation message for replay after revocation.
- An invitation-state and membership inspection hook plus documented revocation timing.

## Steps

1. Invite the recipient with a limited role and verify the pending row; retain the run-specific email link through the inbox fixture.
2. Revoke that invitation in the administrator interface and verify the pending row disappears or shows revoked status.
3. Open the retained link as the intended recipient after the documented propagation interval and verify acceptance is refused.
4. Inspect membership state and verify no active membership was created by the revoked link.
5. Issue a new invitation to the same address, accept its distinct link, and verify that the new invitation grants the intended role normally.

## Expected results

- The first invitation transitions to revoked and cannot be accepted afterward.
- Rejected acceptance creates no membership for the recipient.
- A subsequent valid invitation remains usable and has its own identity.

## False-pass traps

- A missing invitation row can be a display filter rather than actual revocation.
- Accidentally opening the newest email during the revoked-link check removes the negative case.

## Cleanup

- Remove the recipient membership and delete both run-specific invitation messages.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)
- [agent-qa auth state](/docs/agent-qa/guides/auth-state.md)

- [Organization membership QA recipes](/agent-library/organization-membership.md)
- [Software factory QA library](/agent-library.md)
