{"record":{"id":"969675d99880bbc0","repo":"mastra-ai/mastra","slug":"defaultprojectname-is-required-when-mode-is-creat","errorCode":null,"errorMessage":"defaultProjectName is required when mode is \"create\"","messagePattern":"defaultProjectName is required when mode is \"create\"","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/cli/src/commands/init/observability-provision.ts","lineNumber":89,"sourceCode":"  /** Organization already chosen during the observability auth prompt. */\n  org?: { orgId: string; orgName: string };\n} = {}): Promise<ObservabilityProvisionResult> {\n  const token = providedToken ?? (await getToken());\n  const { orgId, orgName } = org ?? (await resolveCurrentOrg(token, { forcePrompt: true }));\n\n  let project: ObservabilityProject;\n  if (observabilityProject) {\n    const projects = await listProjects(token, orgId);\n    const match = projects.find(proj => proj.name === observabilityProject || proj.slug === observabilityProject);\n    if (match) {\n      project = match;\n    } else {\n      project = await createProjectByName({ token, orgId, name: observabilityProject });\n    }\n  } else if (mode === 'create') {\n    // Fresh scaffold: reuse the local project name; no picker, no re-prompt.\n    if (!defaultProjectName) {\n      throw new Error('defaultProjectName is required when mode is \"create\"');\n    }\n    project = await createProjectByName({ token, orgId, name: defaultProjectName });\n  } else {\n    const projects = await listProjects(token, orgId);\n    if (projects.length === 0) {\n      project = await createProject({ token, orgId, defaultName: defaultProjectName, orgName });\n    } else {\n      const choice = await p.select({\n        message: `Select a project (in ${orgName})`,\n        options: [\n          ...projects.map(proj => ({ value: proj.id, label: proj.name, hint: proj.slug })),\n          { value: '__new__', label: '+ Create new project' },\n        ],\n      });\n\n      if (p.isCancel(choice)) {\n        throw new Error('Cancelled');\n      }","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/cli/src/commands/init/observability-provision.ts#L71-L107","documentation":"During `mastra init` observability provisioning in 'create' mode (fresh scaffold), the CLI reuses the local project name to create an observability project. It throws when that name is missing, since no picker or re-prompt happens in this mode.","triggerScenarios":"Calling provisionObservabilityProject with mode='create' and defaultProjectName undefined/empty, typically when the init flow was invoked non-interactively or the project-name step was skipped.","commonSituations":"Running `mastra init` in CI with flags that skip the interactive name prompt, custom wrappers around init that don't pass defaultProjectName, or a fresh directory where no package.json name could be derived.","solutions":["Ensure the init command provides the local/default project name (e.g. pass the project name flag explicitly).","If scripting init, supply a project name argument instead of relying on the interactive prompt.","Derive defaultProjectName from the directory or package.json before calling provisioning.","Use an explicit provision mode ('pick' or existing project) when no default name is available."],"exampleFix":"// before\nawait provisionObservabilityProject({ mode: 'create', defaultProjectName: undefined });\n// after\nawait provisionObservabilityProject({ mode: 'create', defaultProjectName: 'my-mastra-app' });","handlingStrategy":"validation","validationCode":"if (mode === 'create' && (!defaultProjectName || defaultProjectName.trim() === '')) {\n  throw new Error('Provide a project name before provisioning in create mode');\n}","typeGuard":null,"tryCatchPattern":"try {\n  await provisionObservabilityProject({ mode: 'create', defaultProjectName });\n} catch (err) {\n  if (err.message.includes('defaultProjectName is required')) {\n    // fall back to interactive mode or prompt for a name\n  }\n}","preventionTips":["Always pass the local project name explicitly when scripting `mastra init`.","Derive defaultProjectName from package.json or the directory name before init.","Prefer explicit provision modes when running non-interactively."],"tags":["cli","init","configuration","observability"],"backgroundTag":"missing-required-option","analyzedSha":"75dd419e613fe9c39f846ffc500716141b74fda6","analyzedAt":"2026-08-30T00:15:31.844Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}