---
title: "Verify expired export links recover to the same report"
description: "Test a prepared expired sandbox download link and its regeneration path, ensuring the new file preserves the original report scope and authorization."
canonical_url: "https://vostride.com/agent-library/network-recovery/expired-download-retry.md"
md_url: "https://vostride.com/agent-library/network-recovery/expired-download-retry.md"
content_kind: "recipe"
topic: "network-recovery"
---

# Verify expired export links recover to the same report

Test a prepared expired sandbox download link and its regeneration path, ensuring the new file preserves the original report scope and authorization.

## Risk

Regenerating a file can accidentally use current filters instead of the frozen export request. Compare the requested snapshot and downloaded artifact independently; a working replacement link alone does not establish report correctness.

## Fixtures

- An owned reporting sandbox with a completed export for a fixed date range and project, using harmless synthetic records.
- An external fixture that expires the export download URL while preserving the report job and records its original snapshot identifier.
- A test report viewer and a project-owned artifact verifier that reads the regenerated file headers, record identifiers, and ownership metadata.

## Steps

1. Open the prepared report job and verify its project, date range, and completed status match the original export manifest.
2. Attempt its expired download and verify the app offers an explicit expired-link recovery state rather than reporting the report itself missing.
3. Change an unrelated dashboard filter, return to the original job, regenerate its download using the supported control, and verify the job scope stays unchanged.
4. Retrieve the regenerated artifact through the approved sandbox verification workflow and verify its headers and record identifier set match the original snapshot.
5. Inspect the job oracle and verify the replacement link belongs to the same authorized report job and has not created an export for the unrelated current filter.

## Expected results

- The expired-link condition is established independently of UI messaging.
- The regenerated artifact retains the original frozen report scope and record set.
- The replacement remains associated with the authorized original job.

## False-pass traps

- A downloadable nonempty file can still represent the wrong filter or report snapshot.
- Creating a completely new export sidesteps recovery of the expired original link.

## Cleanup

- Delete the disposable report artifacts and reset the external expiry fixture.

## 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 first test](/docs/agent-qa/guides/first-test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)
- [agent-qa test](/docs/agent-qa/configuration/test.md)

- [Network recovery QA recipes](/agent-library/network-recovery.md)
- [Software factory QA library](/agent-library.md)
