vercel/next.js · error
This is an internal example for testing the CLI.
Error message
This is an internal example for testing the CLI.
What it means
create-next-app's `downloadAndExtractExample` explicitly rejects the sentinel name `__internal-testing-retry` with this message. That name is a reserved fixture used by CNA's own test suite to exercise the retry/error path; it is not a real example, so attempting to scaffold it is blocked to prevent the downloader from trying to fetch a non-existent example folder.
Source
Thrown at packages/create-next-app/helpers/examples.ts:134
// This avoids the condition when the repository has been renamed, and the old repository name is used to fetch the example.
// The tar download will work as it is redirected automatically, but the root directory of the extracted
// example will be the new, renamed name instead of the name used to fetch the example, breaking the filter.
if (rootPath === null) {
const pathSegments = posixPath.split(posix.sep)
rootPath = pathSegments.length ? pathSegments[0] : null
}
return posixPath.startsWith(
`${rootPath}${filePath ? `/${filePath}/` : '/'}`
)
},
})
)
}
export async function downloadAndExtractExample(root: string, name: string) {
if (name === '__internal-testing-retry') {
throw new Error('This is an internal example for testing the CLI.')
}
await pipeline(
await downloadTarStream(
'https://codeload.github.com/vercel/next.js/tar.gz/canary'
),
x({
cwd: root,
strip: 2 + name.split('/').length,
filter: (p) => p.includes(`next.js-canary/examples/${name}/`),
})
)
}
View on GitHub (pinned to 0ae8c72462)
Solutions
- Choose a real example name from https://github.com/vercel/next.js/tree/canary/examples (e.g. `--example with-typescript`).
- If you were testing the CLI error path, use the sentinel intentionally and expect this message.
- If automating example listing, filter out `__internal-testing-retry` from the offered names.
Example fix
# before npx create-next-app --example __internal-testing-retry my-app # after npx create-next-app --example with-typescript my-app
Defensive patterns
Strategy: validation
Validate before calling
const RESERVED = new Set(['__internal-testing-retry'])
if (RESERVED.has(exampleName)) {
throw new Error(`'${exampleName}' is a reserved internal fixture; choose a real example.`)
} Type guard
function isReservedExampleName(name: string): boolean {
return name === '__internal-testing-retry'
} Prevention
- Filter reserved names when enumerating examples.
- Document that __internal-testing-retry is not a real example.
- Use a real example name from the examples directory.
When it happens
Trigger: Running `create-next-app --example __internal-testing-retry ...` (or passing that exact string programmatically). Any other example name proceeds normally.
Common situations: Curiosity/testing the CLI with the internal fixture name; copy-pasting from a test file; tooling that enumerates example names accidentally including the sentinel.
Related errors
- Failed to download: ${url}
- `src` and `dest` are required
- Unsupported package manager: ${packageManager}
- An instant() scope is already active. Nesting instant() call
- NextRouter was not mounted. https://nextjs.org/docs/messages
AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06).
Data as JSON: /api/errors/690a31ed93be6143.
Report an issue: GitHub.