alyssaxuu/screenity · error · Error
chrome.offscreen API unavailable
Error message
chrome.offscreen API unavailable
What it means
Guard in createCloudRecorderOffscreen: chrome.offscreen (or createDocument) is undefined, meaning the browser lacks Offscreen Documents support or the manifest is missing the 'offscreen' permission. The recorder's offscreen host cannot be created, so background-recording via offscreen doc is impossible in this environment.
Source
Thrown at src/pages/Background/offscreen/createCloudRecorderOffscreen.js:6
// Offscreen doc host for the recorder; immune to background-tab freeze/discard.
// ?cloud=1 renders <CloudRecorder/>, else <Recorder/>. Chrome allows only one
// offscreen doc per extension, so any existing one is closed first.
export const createCloudRecorderOffscreen = async ({ cloud = true } = {}) => {
if (!chrome.offscreen || typeof chrome.offscreen.createDocument !== "function") {
throw new Error("chrome.offscreen API unavailable");
}
try {
const contexts = await chrome.runtime.getContexts({});
const hasOffscreen = (contexts || []).some(
(c) => c.contextType === "OFFSCREEN_DOCUMENT",
);
if (hasOffscreen) {
await chrome.offscreen.closeDocument();
}
} catch (err) {
// non-fatal; still attempt create, a stale doc surfaces as a create error
console.warn("[createCloudRecorderOffscreen] pre-close failed", err);
}
await chrome.offscreen.createDocument({
url: cloud ? "offscreenrecorder.html?cloud=1" : "offscreenrecorder.html",
reasons: ["USER_MEDIA", "DISPLAY_MEDIA", "BLOBS", "WORKERS"],View on GitHub (pinned to 512606387b)
Solutions
- Add "offscreen" to the manifest permissions
- Feature-detect and fall back to rendering the recorder in a tab or extension page
- Inform users on browsers without offscreen support that the feature is unavailable
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/pages/Background/offscreen/createCloudRecorderOffscreen.js:6 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of alyssaxuu/screenity@512606387b (2026-09-02).
Data as JSON: /api/errors/9d56823151b1ffe4.
Report an issue: GitHub.