{"record":{"id":"8a0188b024957eda","repo":"withastro/astro","slug":"no-problem-find-our-official-integrations-at-http","errorCode":null,"errorMessage":"No problem! Find our official integrations at https://astro.build/integrations","messagePattern":"No problem! Find our official integrations at https://astro\\.build/integrations","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"info","filePath":"packages/astro/src/cli/add/index.ts","lineNumber":872,"sourceCode":"\t\t\t\tconst parsed = parseIntegrationName(integration);\n\t\t\t\tif (!parsed) {\n\t\t\t\t\tthrow new Error(`${bold(integration)} does not appear to be a valid package name!`);\n\t\t\t\t}\n\t\t\t\tlet { scope, name, tag } = parsed;\n\t\t\t\tlet pkgJson;\n\t\t\t\tlet pkgType: 'first-party' | 'third-party';\n\n\t\t\t\tif (scope && scope !== '@astrojs') {\n\t\t\t\t\tpkgType = 'third-party';\n\t\t\t\t} else {\n\t\t\t\t\tconst firstPartyPkgCheck = await fetchPackageJson('@astrojs', name, tag);\n\t\t\t\t\tif (firstPartyPkgCheck instanceof Error) {\n\t\t\t\t\t\tif (firstPartyPkgCheck.message) {\n\t\t\t\t\t\t\tspinner.message(yellow(firstPartyPkgCheck.message));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tspinner.message(yellow(`${bold(integration)} is not an official Astro package.`));\n\t\t\t\t\t\tif (!(await askToContinue({ flags, logger }))) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`No problem! Find our official integrations at ${cyan(\n\t\t\t\t\t\t\t\t\t'https://astro.build/integrations',\n\t\t\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tspinner.message('Resolving with third party packages...');\n\t\t\t\t\t\tpkgType = 'third-party';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpkgType = 'first-party';\n\t\t\t\t\t\tpkgJson = firstPartyPkgCheck as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pkgType === 'third-party') {\n\t\t\t\t\tconst thirdPartyPkgCheck = await fetchPackageJson(scope, name, tag);\n\t\t\t\t\tif (thirdPartyPkgCheck instanceof Error) {\n\t\t\t\t\t\tif (thirdPartyPkgCheck.message) {\n\t\t\t\t\t\t\tspinner.message(yellow(thirdPartyPkgCheck.message));\n\t\t\t\t\t\t}","sourceCodeStart":854,"sourceCodeEnd":890,"githubUrl":"https://github.com/withastro/astro/blob/d081033d5fe8e8a68c4bbbad4af9d2deb9c74bca/packages/astro/src/cli/add/index.ts#L854-L890","documentation":"Inside `astro add`, when a package is not found under @astrojs (so it is not official), the CLI prompts the user to continue with a third-party install. If the user declines (askToContinue returns false, or --yes was not set and they answered No), it throws this Error whose message is the friendly redirect to the integrations page. It is a user-initiated abort, not a real failure.","triggerScenarios":"Running `astro add <some-non-astrojs-pkg>` (or a typo that is not an official integration) in interactive mode and answering 'No' to the 'Continue?' prompt; or the same in a non-TTY context where the prompt resolves to false.","commonSituations":"Misspelled official integration name (e.g. `astro add tailwimd`); trying an unknown community package and deciding not to proceed; running `astro add` in CI without --yes where the prompt cannot be answered.","solutions":["Check the spelling of the integration against https://astro.build/integrations and retry.","If you really want the third-party package, re-run and answer Yes (or pass --yes / -y).","For non-interactive installs, install the package manually with your package manager and wire it up in astro.config."],"exampleFix":"# before\nastro add tailwimd   # typo, prompt appears, you say No\n\n# after\nastro add tailwind    # correct name, no prompt\n# or proceed anyway:\nastro add tailwimd --yes","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Verify integration spelling against the official list before running `astro add`.","Pass --yes only when you genuinely accept a third-party install.","Run `astro add` interactively for unknown packages to see prompts."],"tags":["cli","astro-add","user-abort","interactive"],"backgroundTag":null,"analyzedSha":"d081033d5fe8e8a68c4bbbad4af9d2deb9c74bca","analyzedAt":"2026-08-12T13:37:29.035Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}