{"record":{"id":"b24069729e3ef2c5","repo":"mastra-ai/mastra","slug":"cancelled","errorCode":null,"errorMessage":"Cancelled","messagePattern":"Cancelled","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/cli/src/commands/init/observability-provision.ts","lineNumber":106,"sourceCode":"    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      }\n\n      if (choice === '__new__') {\n        project = await createProject({ token, orgId, defaultName: defaultProjectName, orgName });\n      } else {\n        project = projects.find(proj => proj.id === choice)!;\n      }\n    }\n  }\n\n  const secret = await mintOrgToken({\n    token,\n    orgId,\n    keyName: `mastra observability – ${project.name}`,\n  });\n\n  const result: ObservabilityProvisionResult = {\n    token: secret,","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/cli/src/commands/init/observability-provision.ts#L88-L124","documentation":"When provisioning observability in interactive mode, the CLI shows a project picker via @clack/prompts. This error is thrown when the user cancels the picker (Esc/Ctrl-C), aborting provisioning.","triggerScenarios":"Running `mastra init` observability provisioning, and pressing Esc or Ctrl-C at the 'select a project' prompt when projects already exist in the organization.","commonSituations":"Developers abandoning init midway, CI environments where no TTY is available so the prompt is auto-cancelled, or users without permissions choosing to abort.","solutions":["Select an existing project or '+ Create new project' instead of cancelling.","Run in a non-interactive mode by supplying the project name/flags so no prompt is shown.","If running in CI, ensure a TTY or use flag-based provisioning to avoid the interactive picker.","Catch the 'Cancelled' error in wrappers around init and exit gracefully with code 0."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"const isInteractive = process.stdout.isTTY;\nif (!isInteractive) {\n  // use flag-based provisioning to skip the picker\n}","typeGuard":null,"tryCatchPattern":"try {\n  await provisionObservabilityProject(options);\n} catch (err) {\n  if (err.message === 'Cancelled') {\n    process.exit(0); // user aborted; exit gracefully\n  }\n  throw err;\n}","preventionTips":["Run init in a TTY-enabled terminal.","Use flag-based/non-interactive provisioning in CI.","Don't press Esc/Ctrl-C at the project picker unless aborting intentionally."],"tags":["cli","interactive","user-cancellation","prompt"],"backgroundTag":"user-cancelled-prompt","analyzedSha":"75dd419e613fe9c39f846ffc500716141b74fda6","analyzedAt":"2026-08-30T00:15:31.844Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}