> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thornode.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Replay raw shreds

> Replay recently captured raw shreds from ThorNode's rolling window.

ShredReplay sends recently captured raw shreds from a selected slot range to your UDP receiver. The dashboard labels this product **ShredReplay**.

Replay uses a rolling window, not a historical archive. Slots leave the window as it advances. Its key and jobs are separate from the live [Raw Shred Stream](/products/raw-shred-stream) registration.

## Live feed or replay

| Good fit                                                  | Choose another product                                                         |
| --------------------------------------------------------- | ------------------------------------------------------------------------------ |
| You need raw shreds still inside the rolling window       | The slot has already expired from the window                                   |
| You want to test a consumer against a known recent range  | You need a continuous feed; use [Raw Shred Stream](/products/raw-shred-stream) |
| Your receiver can handle UDP and the selected replay pace | You require acknowledged, lossless, or ordered delivery                        |

## Quick reference

| Item               | Value                                                                       |
| ------------------ | --------------------------------------------------------------------------- |
| Dashboard path     | **Endpoints → ShredReplay**                                                 |
| Credential         | Dedicated replay key for the selected access                                |
| Source range       | Start and end slots inside the rolling window shown by the dashboard        |
| Receiver           | Globally routable numeric IPv4 and UDP port from `1024` through `65535`     |
| Pacing             | Maximum speed or original pacing                                            |
| Job status         | ShredReplay shows whether a job is queued, running, or finished             |
| Delivery behavior  | Packet loss, duplication, and reordering are possible                       |
| Completion meaning | The replay sender finished the range; receiver delivery is not acknowledged |

## Prepare the receiver

Start the UDP listener before creating a job. Open the selected port through the host firewall, cloud security group, network ACL, and any NAT forwarding rule.

You can use the [minimal ShredStream receiver](/products/raw-shred-stream/quickstart#run-the-receiver) because both products deliver raw UDP datagrams.

## Create a replay key

<Steps>
  <Step title="Open ShredReplay">
    Go to **Endpoints → ShredReplay** and select the access you want to use.
  </Step>

  <Step title="Generate the key">
    Generate a ShredReplay key for that access. Store it as a secret; it is
    separate from the UDP receiver and RPC location tokens.
  </Step>
</Steps>

Revoking or regenerating the key affects future replay jobs for that access.

## Create a replay job

<Steps>
  <Step title="Check the active job">
    Wait for the current queued or running job to finish, or cancel it before
    creating another job for the same access.
  </Step>

  <Step title="Choose the slot range">
    Enter start and end slots inside the minimum and maximum shown by
    ShredReplay. Refresh the range before submission because the window keeps
    moving.
  </Step>

  <Step title="Enter the receiver">
    Enter the receiver's globally routable numeric IPv4 address and a UDP port
    from `1024` through `65535`.
  </Step>

  <Step title="Choose pacing">
    Select **Maximum speed** for the shortest replay time or **Original pacing**
    to follow the capture timing.
  </Step>

  <Step title="Start and observe">
    Start the job, monitor its state, and confirm that the receiver reports
    nonzero packet and byte counts.
  </Step>
</Steps>

## Choose pacing

| Mode            | Sender behavior                                      | Receiver implication                                                             |
| --------------- | ---------------------------------------------------- | -------------------------------------------------------------------------------- |
| Maximum speed   | Sends without recreating the original capture timing | The network path, socket, and queues must absorb a potentially higher burst rate |
| Original pacing | Replays according to the captured timing             | The receiver sees traffic closer to the original packet cadence                  |

Keep **Speed multiplier** at `1` when you use **Original pacing**.

Measure packet rate and socket drops at the receiver before replaying a large range.

## Interpret job outcomes

| Status                            | Interpretation                                       | Limitation                                                      |
| --------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- |
| Job is queued or running          | The current job is still active                      | Finish or cancel it before starting another job                 |
| Receiver reports nonzero packets  | UDP traffic reached the application                  | Not every requested packet necessarily arrived or was processed |
| Job is completed                  | ThorNode's replay sender finished the selected range | Receiver delivery is not acknowledged                           |
| Range is rejected after a refresh | A requested slot left the rolling window             | Slots outside the rolling window are unavailable                |

The receiver must tolerate packet loss, duplication, and reordering. Job completion and receiver packet counts are separate signals.

## Troubleshooting

| Problem                | Fix                                                                                 |
| ---------------------- | ----------------------------------------------------------------------------------- |
| Slot range is rejected | Refresh the rolling minimum and maximum, then choose a current range.               |
| New job cannot start   | Wait for the queued or running job to finish, or cancel it before creating another. |
| No packets arrive      | Check the public IPv4, UDP port, listener, firewall, NAT, and job state.            |
| Receiver drops packets | Use original pacing and move work out of the socket callback into bounded queues.   |

## Next steps

* [Run the replay quickstart](/products/shredreplay/quickstart)
* [Protect and rotate the replay key](/reference/security)
* [Diagnose UDP delivery](/reference/troubleshooting#raw-shred-stream-or-replay-sends-no-udp-data)
