Destination types
Pick the forwarder type that matches where your webhook traffic should land. The type is a creation-time decision — you cannot change an external forwarder to internal, or vice versa, after it has been created.External forwarder
http or https endpoint, such as a production service, staging environment, or partner API.Internal forwarder
localhost:3000. Use this type during local development.Path modes
Path mode controls whether Repost preserves the original incoming request path or always sends traffic to a single fixed URL.- Transparent
- Locked
Create a forwarder
You can create a forwarder when setting up a bucket for the first time, or later from the bucket’s Forwarders page.Name the forwarder
production-api, local-webhooks, or analytics-worker. Names must be unique within a bucket.Choose external or internal
Choose transparent or locked routing
Enter the protocol and destination
http or https from the protocol selector, then enter host[:port][/path] without the protocol prefix. Internal forwarders default to http.Set the request timeout
20000 ms. You can set any value between 5000 and 60000 ms in steps of 1000 ms.Configure delivery controls when available
Bucket mode rules
The bucket’s response mode determines which forwarder controls are available to you.Queued bucket
Proxy bucket
Delivery controls
These values are stored on the forwarder. All of them can be adjusted from the forwarder’s settings page after creation, subject to the bucket mode rules above.Timeout
Timeout
5000–60000 ms in 1000 ms steps. Default: 20000 ms. Repost marks a delivery attempt as timed out if the destination does not respond within this window.Retries (queue buckets only)
Retries (queue buckets only)
0–3. Default at creation: 3. Set retries to 0 to disable them. Repost retries connection failures and responses with status 408, 429, or 5xx. All other 4xx responses are treated as final.Retry delay (queue buckets only)
Retry delay (queue buckets only)
5000–60000 ms. Default: 15000 ms. This sets the initial retry window. Retry waits use full jitter — Repost picks a delay between 0 and the current window, floors it at 1000 ms, then grows the window by the backoff multiplier after each attempt.Backoff multiplier (queue buckets only)
Backoff multiplier (queue buckets only)
0.5x–3.0x. Default: 2.0x. The retry window is multiplied by this value after each failed attempt.Max retry delay (queue buckets only)
Max retry delay (queue buckets only)
60000–1800000 ms. Default: 900000 ms. The retry window is capped at this value regardless of how many times the backoff multiplier is applied.Rate limit (queue buckets only)
Rate limit (queue buckets only)
5–500 requests per second in steps of 5.0 and the current retry window, floors it at 1000 ms, then grows the window by the backoff multiplier until it is capped by the max retry delay.External target restrictions
When you create an external forwarder, Repost validates the destination before saving. The following targets are blocked:localhostand loopback addresses- Private or reserved IP ranges
- Single-label hostnames (e.g.
myserverwith no domain) - Internal-only hostnames
- Hostnames that resolve via DNS to any of the above blocked addresses
Common errors
Name is already taken
Name is already taken
Proxy bucket already has a forwarder
Proxy bucket already has a forwarder
Retry or rate limit rejected for proxy
Retry or rate limit rejected for proxy
External target is not allowed
External target is not allowed
Forwarder type cannot be changed
Forwarder type cannot be changed
Delete is blocked by an active replay
Delete is blocked by an active replay