Skip to content
Roku SDK

Roku crashes, with the whole story.

Crash and error reports from your Roku channels — the exit reason, the stack, and the trail of what happened before.

The Roku SDK reports crashes, out-of-memory kills and runtime errors from BrightScript and SceneGraph channels. A crashed channel cannot send anything, so the report is made on the next launch, with the screen and breadcrumbs of the session that ended.

crash reportsout-of-memory killsstack framesbreadcrumbsscreendevice

Crash reporting for Roku channels

Roku is one of the biggest streaming platforms and one of the least served by tooling. Channels are BrightScript and SceneGraph, so nothing built for the web or for native mobile runs there. The Roku SDK is a component library you load from your scene, plus a build step for release builds.

If the question is whether a React Native app can be ported to Roku, React Native on Roku: why it can’t, and what teams ship instead covers what carries over and what has to be rewritten.

What it reports

When a channel crashes or is killed, Roku records why. The SDK reads that on the next launch and files a report: BrightScript crashes and timeouts, memory-limit and out-of-memory kills, and system kills. With the build step, errors are also recorded where they are thrown, with a stack, and then re-thrown so your channel behaves exactly as before. Exceptions your own code catches can be sent with captureException.

What it does not do yet

On every other TV platform a person files the report, from a phone or the dashboard. That flow is not available on Roku: there is no reporter, no screenshot and no replay. A Roku report is the same envelope as every other screen, so it reaches the same error groups, webhooks and triage rules — it just never comes from a person. Start with the install guide, or read a worked run through a crashing test channel.

What every Roku report carries

  • The error — exception type, message, and a stack when the build is instrumented — or the exit code Roku recorded for a kill.
  • The breadcrumb trail and the screen from the session that crashed, kept across the crash.
  • The memory reading before an out-of-memory kill, and what Roku recorded about the exit.
  • App version and build, Roku model, OS version, and the user if your channel set one.

Install

npm install -D @everframe/roku

Questions

Can a tester file a bug report from a Roku channel?

Not yet. On Roku, Everframe is crash and error reporting only. There is no reporter and no screenshot.

When does a crash show up?

The next time the channel is opened. Roku records why the previous launch ended, and the SDK reports it then. The report carries the time of the exit, not the time it was sent.

Do I get a stack trace?

Reliably with the build step. everframe-roku instrument wraps your entry points so the backtrace is recorded at the throw. Without it the stack comes from a 20-line console log and is often missing, though the crash is still reported.

Which Roku OS versions are supported?

Next-launch crash and out-of-memory detection needs Roku OS 13.0 or later. Build-step instrumentation needs 9.4 or later.