---
title: "Fanout Failed"
method: POST
path: "/fanout-failed"
---

# Fanout Failed

`POST /fanout-failed`

## Request

- Base URL: `https://sleipnir.tv` (the document declares no server; this is the origin it was published from)
- URL: `https://sleipnir.tv/fanout-failed`
- Auth: none declared

start.sh calls this when it can't fan out (no destinations, or none
with a decryptable URL) instead of exiting straight into a silent
runOnReadyRestart loop -- the 2026-07-28 no_dests incident was 83
relaunches in ~7 minutes with zero signal anywhere. Always logged and
always recorded (for the dashboard's fanout_issue field, see
api_stream_status); admin is alerted once per cooldown once the failure
looks sustained rather than a one-off race at stream start.

The path is never logged (it carries the stream key) -- only the same
one-way hash start.sh already prints as hash=..., so the two logs
correlate without exposing anything.

## Headers

- `X-Sleipnir-Hook-Auth` string, nullable

## Request body

- FanoutFailedPayload
  - `path` string, nullable
  - `reason` string, nullable
  - `attempt` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sleipnir/apis/relay-control-plane.md) · [All operations](https://skmtc.dev/sleipnir/apis/relay-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/sleipnir/apis/relay-control-plane/revisions/79829f6945a4?raw)
