{"record":{"id":"e14bfd473fd1db22","repo":"continuedev/continue","slug":"assistant-options-assistant-not-found","errorCode":null,"errorMessage":"Assistant ${options.assistant} not found","messagePattern":"Assistant (.+?) not found","errorType":"error_code","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/continue-sdk/typescript/src/Continue.ts","lineNumber":129,"sourceCode":"\n    const { ownerSlug, packageSlug } = decodePackageSlug(options.assistant);\n    if (!ownerSlug || !packageSlug) {\n      throw new Error(\n        `Invalid assistant identifier: ${options.assistant}. Expected format: owner-slug/package-slug`,\n      );\n    }\n\n    const assistants = await continueClient.listAssistants({\n      organizationId: options.organizationId,\n      alwaysUseProxy: \"true\",\n    });\n\n    const assistantRes = assistants.find(\n      (a) => a.ownerSlug === ownerSlug && a.packageSlug === packageSlug,\n    );\n\n    if (!assistantRes) {\n      throw new Error(`Assistant ${options.assistant} not found`);\n    }\n\n    const assistant = new Assistant(assistantRes.configResult.config);\n\n    const client = createOpenAIClient({\n      models: assistant.config.models,\n      organizationId: options.organizationId || null,\n      apiKey: options.apiKey,\n      baseURL: baseURL,\n    });\n\n    return {\n      api: continueClient,\n      client,\n      assistant,\n    };\n  }\n}","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/packages/continue-sdk/typescript/src/Continue.ts#L111-L147","documentation":"After fetching the organization's assistants, Continue.from could not find one whose ownerSlug and packageSlug match the requested identifier, so it cannot build the client.","triggerScenarios":"Continue.from({ assistant: 'owner/pkg' }) succeeds in format but listAssistants (optionally scoped by organizationId) returns no matching entry.","commonSituations":"Assistant was deleted/renamed, wrong organizationId supplied so it's not visible, typo in one of the slugs, or the assistant is private to another org.","solutions":["Use listAssistants to print available ownerSlug/packageSlug pairs and copy the exact match","Check you passed the correct organizationId if the assistant is org-scoped","Fix typos in either slug","Use Continue.from({}) without assistant for the default client while you sort access"],"exampleFix":"// before\nconst { api } = await Continue.from({ assistant: 'contnue/recommended' });\n\n// after\nconst { api } = await Continue.from({ assistant: 'continue/recommended', organizationId: ORG_ID });","handlingStrategy":"validation","validationCode":"const list = await client.listAssistants({ organizationId }); const found = list.find(a => `${a.ownerSlug}/${a.packageSlug}` === slug);","typeGuard":null,"tryCatchPattern":"try { const { api } = await Continue.from({ assistant }); } catch (e) { if (/not found/.test(e.message)) { console.error(await (await Continue.from({})).api.listAssistants({})); } throw e; }","preventionTips":["Confirm assistant exists via listAssistants first","Pass the right organizationId for org-scoped assistants","Re-check slugs after renames/deletions on the hub"],"tags":["continue-sdk","assistant","not-found","lookup"],"backgroundTag":"assistant-not-found","analyzedSha":"5522c6f44ca0ac3528b37244818fbfa39b5af470","analyzedAt":"2026-08-27T11:28:54.683Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}