remotion-dev/remotion · error · Error
${owner}/${repo} is larger than the 100 MB Browser Studio li
Error message
${owner}/${repo} is larger than the 100 MB Browser Studio limit. What it means
The declared size of every blob in the tree is summed and compared against maximumRepositoryBytes = 100 MB (104,857,600 bytes). Repositories whose tracked files total more than that are rejected before downloading starts, because every byte would have to be fetched into browser memory or OPFS storage.
Source
Thrown at packages/browser-studio/src/load-github-repository.ts:186
const fileEntries = tree.tree.filter(
(entry): entry is GitHubTreeEntry & {type: 'blob'} => entry.type === 'blob',
);
for (const file of fileEntries) {
validateRepositoryPath(file.path);
}
if (fileEntries.length > maximumRepositoryFiles) {
throw new Error(
`${owner}/${repo} has ${fileEntries.length.toLocaleString()} files. Browser Studio supports up to ${maximumRepositoryFiles.toLocaleString()}.`,
);
}
const totalBytes = fileEntries.reduce(
(total, entry) => total + (entry.size ?? 0),
0,
);
if (totalBytes > maximumRepositoryBytes) {
throw new Error(
`${owner}/${repo} is larger than the 100 MB Browser Studio limit.`,
);
}
let loadedBytes = 0;
let loadedFiles = 0;
const files: Record<string, string> = {};
const publicFiles: Record<string, VirtualProjectPublicFile> = {};
const hasPublicFiles = fileEntries.some((file) =>
file.path.startsWith('public/'),
);
const publicFileStorage = hasPublicFiles
? await createBrowserStudioProjectStorage()
: null;
const totalFiles = fileEntries.length;
const reportDownloadProgress = () =>
onProgress?.({
loadedBytes,View on GitHub (pinned to 10db9de073)
Solutions
- Reduce total tracked size below 100MB by moving large media out of the repository
- Remove large binaries from git history's tip (and avoid committing node_modules)
- Load a lighter branch or start from a minimal template and re-add assets selectively
Defensive patterns
Strategy: try-catch
Try / catch
try {
await loadGitHubRepository({repoUrl, onProgress});
} catch (e) {
if (/100 MB Browser Studio limit/.test(String((e as Error).message))) {
// guide the user to move large media out of the repo (host externally or use a lighter branch)
} else throw e;
} Prevention
- Do not commit large binaries; keep total tracked size under 100MB
- Strip assets before sharing a repo for browser loading
- Remember the limit sums every blob's declared size, so many medium files count too
When it happens
Trigger: Calling loadGitHubRepository on a repo where the sum of tree entry sizes (entry.size) exceeds 100MB - typically committed video/audio assets, PSDs, or large datasets. The reduce() over fileEntries crosses maximumRepositoryBytes and the load aborts before any fetch.
Common situations: Asset-heavy Remotion projects with committed MP4s or image sequences; repositories that bundle large model or data files; users migrating a desktop-size project into Browser Studio.
Related errors
- ${owner}/${repo} has too many files for Browser Studio to lo
- ${owner}/${repo} has ${fileEntries.length.toLocaleString()}
- Remote asset exceeds the 50MB size limit
- Invalid GitHub repository URL: ${repoUrl}
- The repo parameter must be an https://github.com URL.
AI-assisted analysis of remotion-dev/remotion@10db9de073 (2026-08-22).
Data as JSON: /api/errors/b0879392d46311f5.
Report an issue: GitHub.