Skip to main content

Twitch says you are offline while you are streaming

there are two completely different faults here, and one free check separates them in under a minute

The forum threads that rank for this question all start in the encoder. That is the wrong end. Before you change a single setting, find out whether Twitch ever marked you live at all, because if it did, nothing in OBS is involved and every encoder fix you try will cost you time you do not have while the stream is running.

By Marcus Chen Reviewed by Alex Morrison13 minUpdated Fact-checked · 6 sources

In one minute: Do not open OBS settings yet. First find out whether Twitch set your live flag. The cheapest test is a notification you already own: if your Discord go-live bot posted, or a follower got the push, the flag is set — those bots are driven by the EventSub type Twitch documents as firing "when the specified broadcaster starts a stream".[1] Flag set means the offline you are seeing is a display problem and your encoder is innocent. No notification, and no viewers at all, points at the ingest side, where the documented causes include a bitrate too high for your connection,[3] an output resolution above the 1920x1080 that Twitch's own specs top out at,[3] and the 48-hour broadcast ceiling that Twitch says "cannot be changed".[3] One thing worth knowing before you follow the top search results: the accepted fix in the most-linked forum thread on this question was retracted in that same thread by an OBS forum administrator, who wrote that the bug behind it "is since fixed".[5]

  • 2separate faults hiding behind one symptom — flag set and flag not set — with no fixes in common.
  • 48 hthe maximum broadcast length Twitch documents, stated as something that cannot be changed.
  • 1920x1080the top resolution in Twitch's published encoder specs; above it, one forum case had audio arrive and video vanish.
  • 0encoder settings worth changing if your go-live notification already fired.

# The only question that matters first

Twitch keeps one piece of state about your channel that everything else hangs off: whether you are currently broadcasting. Call it the live flag. It is what the channel page renders from, what the category directory sorts on, what fires your follower notification, and what every third-party tool asks for when it decides whether to show a green dot next to your name.

You can see the flag's existence in two places in Twitch's own developer documentation. The EventSub reference lists a subscription type whose description is one sentence long: "The stream.online subscription type sends a notification when the specified broadcaster starts a stream."[1] The API reference documents a login-name filter on the streams endpoint that "Returns only the streams of those users that are broadcasting".[2] Neither is a diagnostic tool on purpose. Both are honest readouts of the same flag, and that makes them useful.

The two faults, side by sideSources: Twitch EventSub subscription types, Twitch API reference and the Twitch Help Centre broadcasting guidelines — all read 21 September 2026
Live flag is setLive flag is not set
What it meansTwitch accepted the stream and published you as broadcastingTwitch is not treating your session as a broadcast
Did anyone get notifiedYes, the go-live notification fires on this flagNo notification, no Discord post, no push
Viewer countCan be zero and still be correctStays at zero because there is nothing to count
Is a VOD being writtenYes, if VOD storage is on for the channelUsually not, but check before you assume
Where the fix livesBrowser, app, cache, extension, or the surface you are looking atEncoder settings, connection, ingest, or a platform limit
Should you touch OBSNoYes, after you have read the log

# Three free ways to read the live flag

Run whichever one you can reach fastest. They all answer the same question, and one clean answer is enough.

  1. Your own go-live notification. If a Discord bot posts when you start, or your phone buzzes on your own follow, look at whether it fired this session. Those integrations are built on the EventSub type Twitch describes as sending a notification "when the specified broadcaster starts a stream".[1] A notification that fired is proof the flag was set, even if your channel page disagrees a minute later. This is the test nobody writes down, and it costs nothing because the tooling is already running.
  2. A device that shares nothing with yours. Phone on mobile data, logged out, private tab, your channel URL typed by hand. Different account, different network, different cache. If the player starts there, you are live and the offline screen you were looking at is local to you. If that device also says offline, the problem is upstream.
  3. The streams endpoint, if you already have a token. A request for your login name returns a data array that is populated only when you are broadcasting — the parameter is documented as returning "only the streams of those users that are broadcasting".[2] An empty array is the flag being clear. This is the most precise of the three and the slowest to set up from cold; our guide to how the Twitch viewer count works walks through getting the client ID and token if you do not have them.

There is a fourth check people reach for that should be treated with more care than it usually gets: searching for your own name. Twitch search runs on its own index with its own refresh delay, so a stale offline badge there is expected rather than diagnostic. We pulled that apart separately in why a Twitch channel does not show up in search. Do not use search as your live-flag oracle.

# Flag set: you are live and something is lying to you

This is the happier half and the one that gets almost no coverage, because it has no dramatic fix. Twitch has you as broadcasting. Viewers who arrive now will see the stream. The thing in front of you is rendering an old answer.

The candidates are ordinary and worth running in this order, because each takes seconds and rules out the next: a tab that was open before you went live and never re-fetched the channel state; a service worker or app cache on mobile holding the previous session; a content blocker or script blocker that stops the player from initialising, which looks identical to an offline channel; and a browser profile signed into a second account that has you blocked or filtered. Reload the channel page in a fresh tab first — not the tab you already had open.

The case that fools the most people in this half is bandwidth test mode. Twitch accepts the bytes, the session lands in Inspector, and the channel still reads offline — a deliberate behaviour, not a bug, and one with a specific checkbox behind it. We cover it fully in the Twitch Inspector guide rather than repeating it here, because it belongs with the tool that produces it. If you ran a test before going live, check that box before you check anything else.

Flag set, page fine, and still nobody arrives

When the live flag is correct and the room is empty, the fault stopped being technical. A channel sitting at one or two concurrent viewers ranks below everything else in its category, which is the part that compounds. Streamrise delivers Twitch viewers paced across a session rather than dropped in a spike. No supplier can tell you how Twitch grades traffic, and Twitch's own Community Guidelines prohibit artificially inflating metrics — read them and decide for yourself.

  • 60-day drop refund
  • Cancel anytime
See Twitch pricing →

# Flag not set: where the feed is being lost

No notification, no viewers, nothing on the second device. Now the encoder is a legitimate suspect — but read the log before you change a setting, because the log usually names the failure and the settings screen never does.

Twitch's broadcasting guidelines describe the mechanism that sits under most of these cases, and it is worth quoting in full because the name it gives the condition is more precise than "my stream broke".

Broadcast starvation (instability) is when video data does not arrive in a timely fashion or is completely missing. This happens when there are network problems between you and Twitch, when you attempt to stream at a bitrate that is too high for your network/ISP, or have problems with your router causing frames to be dropped before entering the Twitch network.
— Twitch Help Centre, Broadcasting Guidelines

Three of those four causes are outside your encoder and inside your connection, which is why turning knobs in OBS so often produces no change. The guidelines also note that "Reconnection behavior may depend on encoder used",[3] so two streamers with identical connections can see very different symptoms from the same underlying drop — one reconnects quietly, the other sits green and sends into nothing.

  • If the encoder is still showing an active connection but nothing is arriving, the failure happened at the network write and your software has not noticed yet. That specific pattern, the log line that reveals it and the reconnect clock behind it are in why OBS keeps disconnecting from Twitch.
  • If you want to see what Twitch actually received rather than what your encoder believes it sent, that is what Inspector is for — the Inspector guide covers reading the session from the ingest side.
  • If the numbers themselves are the question, Twitch's published specs for the standard path are 1920x1080 at 60 fps, 6000 kbps, CBR, two-second keyframe interval, AAC-LC audio at 96 kbps recommended and 160 kbps maximum.[3] Our broadcasting guidelines reference keeps the full tables.
  • If dropped frames are climbing while this happens, read them in Stream Manager rather than guessing — the broadcast health guide explains which counter means which fault.

# The 48-hour ceiling nobody mentions

There is one cause of this symptom that no amount of encoder tuning will ever touch, and it is stated in a single line at the bottom of Twitch's broadcasting guidelines: "The maximum broadcast length is 48 hours. This cannot be changed."[3]

That matters for exactly one population and matters enormously to them: subathons, charity marathons, 24/7 channels and anyone who habitually leaves the encoder running between sessions. The limit is documented; what Twitch does not document on that page is what the encoder is told when the ceiling is reached. So treat the consequence as an inference rather than a published fact — if you have been streaming continuously for around two days and the channel reads offline while your software looks fine, the length limit is the first thing to rule out, not the last.

The related habit worth breaking is leaving the encoder connected during breaks to "hold the slot". There is no slot to hold, the clock keeps running, and a session that started on Friday afternoon is in ceiling territory by Sunday afternoon whether or not anyone was watching in between.

# Audio arrives, video does not

One variant of this problem is specific enough to be worth naming, because it looks like a platform outage and is actually a settings mismatch. The channel reads offline. Sound is reaching Twitch. Video is not. And the VOD, oddly, turns out fine.

A May 2025 thread on the OBS forums titled "Offline on twitch while streaming" describes exactly that shape. The streamer wrote: "it shows me as offline, while I am streaming, funny enough, the vod on twitch is fine from the 'offline' stream", and after two hours of re-linking the Twitch account, removing scenes, restarting the PC and the router, added: "I just tested, sound is going through to twitch, the screen does not."[4]

A forum moderator's reply was two clauses long: "Keep your bitrate at 6000 and lower your output resolution in settings>video to 1920x1080." The streamer's next post: "The output resolution was the trick".[4] The output had been above 1080p — and 1920x1080 is where Twitch's own published specs for the standard path stop.[3]

The reason the VOD looked fine is the part that makes the whole thing confusing, and it is also the reason this is worth checking early: a recording that plays back correctly feels like proof the stream was working, when the recording and the live rendition are produced by different steps. If your VOD is clean and your channel was offline, that combination narrows the fault rather than clearing it. If quality options are the thing going missing instead, why Twitch quality options disappear covers that case.

# The top result's fix was retracted by its own maintainer

Search this problem and the highest-ranking answer is an OBS forum thread from 2020 titled "OBS says I'm still streaming, but Twitch stream goes offline & I don't know until viewers tell me." It runs for pages, and the fix it converges on is turning off Dynamic Bitrate.

That advice came from the OBS log analyzer, which warned: "Dynamic Bitrate is enabled and a hardware encoder is potentially in use. This can cause issues with hardware encoders if bitrate changes happen too frequently, or drops too low. Should you experience bitrate dropping to zero, or no output even if OBS says its streaming, either change your Encoder to x264 or turn off Dynamic Bitrate in Settings -> Advanced -> Network."[5] It is a perfect description of the symptom, which is why it spread.

OP's problem was caused by a dynamic bitrate bug which is since fixed, this thread is very old so it's unlikely you're having the same problem.
— R1CH, OBS Forum Admin and Developer, in that same thread, 27 November 2021

That retraction is buried twelve posts down in a thread whose first page is what search engines show you. The practical consequence: disabling Dynamic Bitrate is not a wrong thing to try, but it is a five-year-old fix for a bug its own maintainer says was repaired, and it should not be your first move in 2026.

The broader lesson applies to every forum answer you will find for this symptom: these threads are long-lived, the dates are easy to miss, and the person who knows the fix is obsolete usually arrives late. Check the date on the post you are about to act on, and check whether anyone replied after it.

# What each surface is actually reading

"Twitch says offline" gets reported from at least six places, and they are not all reading the same thing at the same speed. Knowing which one you are looking at changes what the word means.

Six places that report offline, and what each one readsSources: Twitch EventSub subscription types and Twitch API reference, read 21 September 2026. Rows without a documented refresh behaviour are marked as not published.
SurfaceWhat it readsHow much it proves
Your go-live notification or Discord botThe stream.online event, documented as firing when a broadcaster starts a streamStrong. If it fired, the flag was set
Streams endpoint with your login nameOnly users that are broadcasting, per the documented filterStrong. Empty result means the flag is clear
Your channel page in a fresh logged-out tabThe live state at the moment the tab loadedGood, provided the tab is new and the session is not yours
A tab you had open before going liveWhatever it fetched when it loadedNone. Reload before you read it
Twitch search resultsA separate index with its own refresh delayWeak. A stale badge here is expected
The category directoryA viewer-sorted list, documented as able to show duplicate or missing entries while pagingNone for a small channel. Not a live-state test

The two rows worth internalising are the last two, because they generate the most false alarms. Twitch documents the directory list as ordered by viewer count with duplicates and gaps possible as you page through it,[2] which means a channel with two viewers is effectively unfindable by scrolling regardless of whether it is live. And search has its own delay, covered in the search article. Neither is a fault, and neither is a measurement.

# The bottom line

The fastest path through this problem is also the least intuitive one: do not open the encoder. Find out whether Twitch set your live flag, using the notification you already have, a device that shares no cache with yours, or the streams endpoint if a token is already sitting in a drawer. The flag is what your channel page, your notifications and every bot are all reading,[1][2] and it splits the problem cleanly in two.

Flag set means you are live and something local is stale, and the correct response is a reload rather than a settings change. Flag not set puts you on the ingest side, where the documented causes are network problems between you and Twitch, a bitrate too high for your connection, a router dropping frames before they reach the network,[3] an output resolution above the 1920x1080 the specs stop at,[3] and the 48-hour ceiling that cannot be changed.[3] What is not on that list in 2026 is the Dynamic Bitrate toggle the top forum threads still point you at, because the bug behind that advice was reported fixed by an OBS maintainer five years ago.[5] Check the date on any answer before you act on it, including this one.

# FAQ

Why does Twitch say I'm offline when I'm streaming?

Because one of two different things is true, and they need different fixes. Either Twitch set your live flag and the page, app or tab in front of you is showing a stale copy of your state, or Twitch never set the flag because the feed is not being accepted as a broadcast. Check whether your go-live notification fired: Twitch documents an EventSub type that sends a notification when a broadcaster starts a stream, and every Discord go-live bot is built on it. A notification that fired means the flag was set and your encoder is not the problem.

OBS says it is streaming with no dropped frames. How can Twitch say offline?

Encoder software reports on the connection it opened, not on what the platform did with the data. A write can succeed into a connection that is no longer producing a broadcast, so a green status bar is a statement about the socket rather than about your channel. Read the encoder log rather than the status bar, and check what Twitch received through Inspector rather than what your software believes it sent.

Twitch says live but there is no video. Is that the same problem?

It is the neighbouring one, and it usually means the live flag is set while the video rendition is not arriving. One documented community case had audio reaching Twitch while video did not, with the channel reading offline and the VOD recording correctly; lowering the output resolution to 1920x1080 resolved it. Check your encoder's output resolution against Twitch's published specs before you change anything else.

I stream 24/7 and my channel keeps going offline on its own. Why?

Twitch's broadcasting guidelines state that the maximum broadcast length is 48 hours and that this cannot be changed. A continuous session hits that ceiling roughly every two days. Twitch does not publish what your encoder is told when it happens, so the safe reading is that a long-running session ending near the two-day mark is the length limit until you have ruled it out. Check the session timer in your encoder before you check anything else.

Should I turn off Dynamic Bitrate?

Not as your first move. That fix comes from OBS forum threads written in 2020 and 2021, and an OBS forum administrator replied in the most-linked of those threads that the dynamic bitrate bug behind it has since been fixed and that a newer reader is unlikely to have the same problem. The checkbox still exists and still carries a beta label, and the OBS tooltip notes the feature is currently only supported for RTMP. Try it if the ingest-side checks come back clean, not before them.

My phone says I'm offline but my desktop says I'm live. Which is right?

Whichever one you loaded most recently from scratch. Mobile apps cache channel state aggressively, so an app that was open before you went live can hold the previous answer. Force-close the app or open the channel in a logged-out mobile browser tab. If the fresh load also says offline while the desktop says live, trust the fresh load and treat the desktop as the stale one.

Will restarting the stream fix it?

Sometimes, and that is exactly why it is a poor diagnostic. A restart resolves a cleared live flag, a stale session and a length-limit cutoff identically, so you learn nothing and you split your VOD. Run the live-flag check first, which takes less time than a restart and tells you which half of the problem you have.

Search shows me as offline. Does that mean the stream is broken?

No. Twitch search is a separate index with its own refresh delay, so a stale live or offline badge there is expected behaviour rather than a fault, and it is a poor test of whether you are actually broadcasting. Use a fresh logged-out load of your channel page or your go-live notification instead.

Marcus Chen

Technical Editor, API & Integrations

Previously reseller-API developer for streaming-services tooling. Writes Streamrise /apidoc, reseller integration, and broadcast-software technical content.

More from Marcus →

Sources & further reading

  1. Twitch Developers — EventSub Subscription Types
    Official Twitch developer documentation, served with lang="en". Quotes used: "The stream.online subscription type sends a notification when the specified broadcaster starts a stream" and "The stream.offline subscription type sends a notification when the specified broadcaster stops a stream", plus the subscription-type table listing Stream Online and Stream Offline at version 1. Read 21 September 2026.
    https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/
  2. Twitch Developers — Twitch API Reference, Get Streams
    Official Twitch developer documentation, served with lang="en". Quotes used: the user_login parameter description, "A user login name used to filter the list of streams. Returns only the streams of those users that are broadcasting"; and the endpoint description, "Gets a list of all streams. The list is in descending order by the number of viewers watching the stream. Because viewers come and go during a stream, it's possible to find duplicate or missing streams in the list as you page through the results." Read 21 September 2026.
    https://dev.twitch.tv/docs/api/reference/
  3. Twitch Help Centre — Broadcasting Guidelines
    Official Twitch help page, loaded in a browser with the heading "Broadcasting Guidelines" visible in the body and lang="en-US". Quotes used: the broadcast starvation definition; "The maximum broadcast length is 48 hours. This cannot be changed."; "Reconnection behavior may depend on encoder used."; and the published 1080p60 specs of 1920x1080, 6000 kbps, CBR, two-second keyframe interval, with AAC-LC audio at 96 kbps recommended and 160 kbps maximum. Read 21 September 2026.
    https://help.twitch.tv/s/article/broadcasting-guidelines?language=en_US
  4. OBS Project forums — "Offline on twitch while streaming"
    Community thread started 15 May 2025, page served with lang="en-US" and the thread title visible in the body. Cited as a single community case, not as Twitch documentation. Quotes used: the original poster's description of the channel reading offline while the VOD recorded correctly, the follow-up that sound reached Twitch and video did not, a forum moderator's reply "Keep your bitrate at 6000 and lower your output resolution in settings>video to 1920x1080", and the poster's confirmation "The output resolution was the trick". Read 21 September 2026.
    https://obsproject.com/forum/threads/offline-on-twitch-while-streaming.185978/
  5. OBS Project forums — "OBS says I'm still streaming, but Twitch stream goes offline"
    Community thread started June 2020, page served with lang="en-US" and the thread title visible in the body. Quotes used: the OBS log analyzer warning about Dynamic Bitrate with a hardware encoder, quoted in post 10; and the retraction by R1CH, listed on the post as Forum Admin and Developer, on 27 November 2021: "OP's problem was caused by a dynamic bitrate bug which is since fixed, this thread is very old so it's unlikely you're having the same problem." Read 21 September 2026.
    https://obsproject.com/forum/threads/obs-says-im-still-streaming-but-twitch-stream-goes-offline-i-dont-know-until-viewers-tell-me.124573/
  6. OBS Studio source — settings strings and form, master branch
    Read from raw.githubusercontent.com on the master branch, together with frontend/forms/OBSBasicSettings.ui. Used to check the current label rather than trust a five-year-old screenshot: the settings form references Basic.Settings.Output.DynamicBitrate.Beta, so the checkbox still carries the beta label, and the tooltip string reads "Instead of dropping frames to reduce congestion, dynamically changes bitrate on the fly" with the note "Currently only supported for RTMP." Latest tagged release at the time of reading was 32.2.2, published 14 August 2026, per the GitHub releases API. Read 21 September 2026.
    https://github.com/obsproject/obs-studio/blob/master/frontend/data/locale/en-US.ini
Streamrise · Real Twitch growth

The stream was live the whole time. The room was the problem.

Plenty of channels that report this turn out to have been broadcasting correctly to nobody, which is a discovery problem wearing a technical costume. Streamrise delivers Twitch viewers paced across a session rather than dropped in a spike. 60-day drop refund, cancel anytime.