---
title: "Verify reset-request cooldown communicates a usable retry time"
description: "Exercise a configured recovery resend limit with a test-owned account and controlled clock, checking feedback, message count, and recovery after cooldown."
canonical_url: "https://vostride.com/agent-library/account-recovery/recovery-request-cooldown.md"
md_url: "https://vostride.com/agent-library/account-recovery/recovery-request-cooldown.md"
content_kind: "recipe"
topic: "account-recovery"
---

# Verify reset-request cooldown communicates a usable retry time

Exercise a configured recovery resend limit with a test-owned account and controlled clock, checking feedback, message count, and recovery after cooldown.

## Risk

Resend controls can either flood an inbox or become stuck after a rejected request. The expected behavior depends on the application configured cooldown, so the test uses a known account-scoped limit instead of inferring rate policy from arbitrary repeated clicks.

## Fixtures

- A disposable account and isolated test inbox with no outstanding recovery messages.
- A documented resend cooldown and a supported account-scoped clock or rate-limit fixture.
- A mail-delivery inspection hook that counts requests and accepted deliveries for this run.

## Steps

1. Request a recovery email and verify the delivery confirmation and any displayed resend countdown.
2. Attempt one additional request inside the configured cooldown using the visible application control; verify the documented disabled state or throttling message.
3. Inspect the delivery hook and verify no unexpected additional reset message was accepted during the blocked interval.
4. Advance the account-scoped fixture beyond cooldown, refresh if required, and verify the resend action becomes usable.
5. Request another message, verify one new accepted delivery, and open its valid link to confirm the recovered resend path is functional.

## Expected results

- The configured cooldown prevents excess accepted reset deliveries for the fixture account.
- The interface explains the temporary restriction and recovers after the documented interval.
- The allowed post-cooldown message contains a usable account recovery link.

## False-pass traps

- Disabling a button without checking delivery count can miss duplicate requests already sent.
- Sleeping for a guessed interval makes the result dependent on unverified server rate settings.

## Cleanup

- Remove the fixture rate override, invalidate issued links, and delete the run-specific 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)

- [Account recovery QA recipes](/agent-library/account-recovery.md)
- [Software factory QA library](/agent-library.md)
