Telling an ingest problem apart from a destination-specific one, reading the post-stream health timeline, and what each destination error actually means.
"My stream is having issues" almost always means one of two unrelated things: your encoder isn’t getting frames to CastFork fast enough (an ingest problem — your connection, your bitrate, your machine), or CastFork is getting your stream fine but a specific destination is rejecting or losing the connection (a per-destination problem — that platform, that stream key, that network path). They need different fixes, and mixing them up wastes time.
The fastest way to tell them apart is to look at your own ingest health first. If it’s clean — steady bitrate, no dropped frames — and only one destination is struggling, the problem lives on that destination’s side of the relay, not yours.
While you’re live, CastFork samples your incoming bitrate, frame rate, and dropped frames continuously, and keeps that timeline after the stream ends — not just a live-only readout that disappears the moment you go offline. That post-stream history is what lets you look back at a stream that felt fine in the moment and confirm whether it actually was.
| Signal | What it usually means |
|---|---|
| Bitrate holds steady near your encoder setting | Ingest is healthy — look at destinations if a specific platform still looks bad. |
| Bitrate dips repeatedly, dropped frames climbing | Your upload can’t sustain the configured bitrate — a settings or network problem, not a CastFork-side one. |
| fps holds but bitrate is oddly low | Often an encoder CPU/GPU bottleneck rather than a network one — check hardware encoder settings. |
| One destination shows errored, others live | Ingest is fine — the problem is specific to that destination (see below). |
When a specific destination fails, CastFork classifies the failure into a plain-English cause instead of surfacing a raw platform status code — the kind of thing you’d otherwise have to look up separately for every platform.
| What you’ll see | Likely cause | What to do |
|---|---|---|
| Sign-in expired / Access revoked | The platform connection’s authorization lapsed or was pulled. | Reconnect the channel from Channels. |
| Stream key rejected | Wrong, expired, or already-in-use credentials at the destination. | Copy a fresh stream key from the destination and update the channel. |
| Server not found | A typo in a custom destination’s RTMP hostname. | Double-check the URL on the Channels page. |
| Connection dropped / timed out | Usually transient — a network hiccup or a brief destination-side issue. | CastFork retries automatically; no action needed unless it repeats. |
| Rate limited | The destination is throttling requests right now. | Wait it out — this resolves itself and CastFork backs off automatically. |
Say a two-hour stream felt mostly fine, but chat mentioned some brief pixelation around the one-hour mark. Pulling up that session’s health timeline afterward, you’d look for a bitrate dip and a matching bump in dropped frames right around that timestamp. If it’s a single, brief dip that recovers on its own, that’s most likely a momentary network blip — worth noting but not urgent. If the same pattern repeats every 15–20 minutes throughout the stream, that’s a more consistent problem — maybe a router that periodically deprioritizes your traffic, or another device on the network running a scheduled sync — and worth actually chasing down before your next broadcast, since a one-off shrug becomes a recurring viewer complaint otherwise.
Check your session’s health timeline after every stream that felt off, even if it looked fine at the time — a few seconds of dropped frames mid-stream are easy to miss live and obvious in a graph afterward. Over a few streams, that history tells you whether a recurring issue is your bitrate, your network, or one specific destination, instead of guessing fresh each time. See multistreaming for how the live health monitor fits into a broadcast, and pricing for which plan includes cloud recordings alongside it.
Keep reading
Start from your real upload speed, not your dream resolution — bitrate bands by resolution and framerate, codec math, and three worked examples.
Point OBS at CastFork's real ingest address, set the output settings that matter, and confirm the connection before you rely on it live.
How to add any RTMP or RTMPS destination as a channel, what you give up compared to a native integration, and where SRT still doesn't fit.
No time limit, no card required. Set your destinations up once, then it's a toggle for every future stream.