remotion-dev/remotion · error · Error
${owner}/${repo} does not have a supported Remotion entry po
Error message
${owner}/${repo} does not have a supported Remotion entry point. Expected src/index.ts or another standard Remotion entry point. What it means
After downloading all files, loadGitHubRepository searches for one of twelve entry point candidates (src/index.ts, src/index.tsx, src/index.js, src/index.mjs, remotion/index.tsx, remotion/index.ts, remotion/index.js, remotion/index.mjs, src/remotion/index.tsx, src/remotion/index.ts, src/remotion/index.js, src/remotion/index.mjs). If none exists among the decoded text files, the repo is not recognized as a Remotion project; any OPFS storage created for public files is deleted before throwing.
Source
Thrown at packages/browser-studio/src/load-github-repository.ts:276
);
} catch (error) {
if (publicFileStorage) {
await deleteBrowserStudioProjectStorage(publicFileStorage);
}
throw error;
}
onProgress?.({phase: 'preparing-project'});
const entryPoint = entryPointCandidates.find(
(candidate) => files[`/project/${candidate}`] !== undefined,
);
if (!entryPoint) {
if (publicFileStorage) {
await deleteBrowserStudioProjectStorage(publicFileStorage);
}
throw new Error(
`${owner}/${repo} does not have a supported Remotion entry point. Expected src/index.ts or another standard Remotion entry point.`,
);
}
return {
entryPoint: `/project/${entryPoint}`,
files,
publicFiles,
publicFileStorage: publicFileStorage ?? undefined,
rootDir: '/project',
};
};
View on GitHub (pinned to 10db9de073)
Solutions
- Create a standard entry file at the repo root, e.g. src/index.ts (or .tsx/.js/.mjs)
- Rename your custom entry (e.g. src/main.tsx) to src/index.tsx
- Add src/index.ts that re-exports the real entry: export * from './main';
- Start from an official Remotion template (e.g. remotion-dev/template-audiogram), which already has a supported entry point
Example fix
// before: only src/main.tsx exists (not a supported candidate)
// after: add src/index.ts re-exporting the real entry
// src/index.ts
export {registerRoot} from './main';
export * from './Root'; Defensive patterns
Strategy: validation
Validate before calling
const candidates = ['src/index.ts', 'src/index.tsx', 'src/index.js', 'src/index.mjs', 'remotion/index.tsx', 'remotion/index.ts', 'remotion/index.js', 'remotion/index.mjs', 'src/remotion/index.tsx', 'src/remotion/index.ts', 'src/remotion/index.js', 'src/remotion/index.mjs'];
const hasEntry = await Promise.any(candidates.map(async (c) => {
const r = await fetch(`https://api.github.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/contents/${c}`);
if (r.ok) return c;
throw new Error(`missing ${c}`);
})).catch(() => null);
if (!hasEntry) throw new Error('Repo has no standard Remotion entry point (src/index.ts and friends)'); Try / catch
try {
await loadGitHubRepository({repoUrl});
} catch (e) {
if (/does not have a supported Remotion entry point/.test(String((e as Error).message))) {
// tell the user to add src/index.ts (or rename/re-export their custom entry) and reload
} else throw e;
} Prevention
- Structure projects with one of the twelve standard entry paths (src/index.ts is the safest)
- Add src/index.ts re-exporting the real entry when using a custom filename
- Start from official Remotion templates, which always carry a supported entry point
When it happens
Trigger: Calling loadGitHubRepository on a repo that is not a Remotion project at all, or a Remotion project whose entry point is non-standard (e.g. src/main.tsx referenced from remotion.config.ts) and therefore not in entryPointCandidates.
Common situations: Loading a generic React/Vite repo; templates with custom entry filenames; projects migrated from older Remotion versions that used a different entry layout; repos where the entry point lives in a non-standard directory.
Related errors
- Invalid GitHub repository URL: ${repoUrl}
- The repo parameter must be an https://github.com URL.
- The GitHub URL must point to a repository, for example https
- The repository contains an unsupported path: ${path}
- Could not read ${owner}/${repo}: ${await getResponseError(tr
AI-assisted analysis of remotion-dev/remotion@10db9de073 (2026-08-22).
Data as JSON: /api/errors/4710294e280b30a9.
Report an issue: GitHub.