gatsbyjs/gatsby · error
Please mention both starter package and project name along w
Error message
Please mention both starter package and project name along with path(if its not in the root)
What it means
Thrown in the interactive prompts branch of init-starter when the user dismisses prompts without selecting a starter or entering a project path. The guard `if (!response.starter || !response.path.trim())` aborts before any file operations so no half-configured site is created.
Source
Thrown at packages/gatsby-cli/src/init-starter.ts:244
{
type: `select`,
name: `starter`,
message: `What starter would you like to use?`,
choices: [
{ title: `gatsby-starter-default`, value: `gatsby-starter-default` },
{
title: `gatsby-starter-hello-world`,
value: `gatsby-starter-hello-world`,
},
{ title: `gatsby-starter-blog`, value: `gatsby-starter-blog` },
{ title: `(Use a different starter)`, value: `different` },
],
initial: 0,
},
])
// exit gracefully if responses aren't provided
if (!response.starter || !response.path.trim()) {
throw new Error(
`Please mention both starter package and project name along with path(if its not in the root)`
)
}
selectedOtherStarter = response.starter === `different`
starterPath = `gatsbyjs/${response.starter}`
rootPath = response.path
}
// set defaults if no root or starter has been set yet
rootPath = rootPath || process.cwd()
starterPath = starterPath || `gatsbyjs/gatsby-starter-default`
return { starterPath, rootPath, selectedOtherStarter }
}
const successMessage = (path: string): void => {
report.info(`View on GitHub (pinned to 8b06340921)
Solutions
- Re-run `gatsby new` interactively and select a starter, then type a project name (and path if not in cwd).
- For non-interactive use, pass args explicitly: `gatsby new my-site gatsbyjs/gatsby-starter-default`.
- If scaffolding into the current directory, supply `.` only where supported, or pick an explicit subdirectory name.
Example fix
# before (cancels or leaves path blank) gatsby new # after (non-interactive explicit args) gatsby new my-site gatsbyjs/gatsby-starter-blog
Defensive patterns
Strategy: validation
Validate before calling
if (!response?.starter || !String(response?.path ?? '').trim()) {
console.error('Both starter and project path are required')
process.exit(1)
} Type guard
const hasPromptAnswers = (r: { starter?: string; path?: string }): boolean =>
!!r?.starter && !!String(r?.path ?? '').trim() Prevention
- Pass explicit args in non-interactive shells.
- Do not pipe empty stdin into `gatsby new`.
- Provide a TTY for interactive prompts.
When it happens
Trigger: Running `gatsby new` with no args in a TTY, pressing Esc/Ctrl-C on the starter or path prompt, or submitting an empty path string. The prompts object (enquirer) returns undefined/empty fields and the validation fires.
Common situations: User cancels prompts by accident; non-interactive CI shell where prompts auto-resolve empty; piping empty stdin into `gatsby new`; user expects `gatsby new` to use cwd but leaves the path prompt blank.
Related errors
- starter ${starterPath} doesn't exist
- You can't create a starter from the existing directory. If y
- Could not find a suitable version of gatsby-cli. Please repo
- Something went wrong when trying to add the plugins to the p
- Did not recognize ${curr}
AI-assisted analysis of gatsbyjs/gatsby@8b06340921 (2026-08-13).
Data as JSON: /api/errors/9957d81d531c3c9e.
Report an issue: GitHub.