TEASEDocs
ProductsStreamTroubleshooting

Publishing stopped after a key change, or two sources are fighting

Rotating the stream key invalidates the old address immediately, and two encoders publishing to the same address isn't supported the way app-plus-browser-camera is.

Symptom

Either an encoder that was working suddenly gets an auth refusal, or the stream keeps switching between two different pictures unexpectedly.

Cause

These are two unrelated gotchas that both look like "publishing is broken":

Auth refusal after previously working fine — the stream key was rotated (from the address card, or after Rotate your stream key). The old address stops being accepted the instant the new key is generated — there's no grace period. Any encoder still configured with the old address fails its next connection attempt.

The picture keeps switching — this is expected only for one specific pairing: the browser camera and an app-based encoder (Moblin, OBS) are deliberately treated as two independent, simultaneous inputs, not competitors. If both are publishing, a choice in the cockpit decides which one actually goes to the platforms — it's not automatic unless left on "whoever arrives." For every other case — two copies of the same app, or two different encoders pointed at the same RTMP address — publishing from two places at once is genuinely unsupported: whoever connects last simply takes over the stream, silently.

How to check

  • Auth refusal right after the picture was fine → check whether the key was rotated recently and update every encoder still pointed at the old address, not just one.
  • Unexpected picture switching with only one encoder configured → check whether the browser camera is also live in another tab; that's the one legitimate dual-source case, and the cockpit's source-choice pills (visible only when both are active) control it.
  • Unexpected picture switching with two copies of the same encoder app, or two different devices pointed at the same address → stop one of them. This pairing isn't arbitrated by Stream at all; the most recent connection simply wins.

What's next

Admin endpoints — every one of Stream's own internal endpoints: path, method, what it does, and whether it's owner-only.

On this page