{"record":{"id":"8810384762ce1a28","repo":"Mintplex-Labs/anything-llm","slug":"errors-0","errorCode":null,"errorMessage":"${errors[0]}","messagePattern":"\\$\\{errors\\[0\\]\\}","errorType":"http","errorClass":null,"httpStatus":500,"severity":"error","filePath":"server/endpoints/browserExtension.js","lineNumber":115,"sourceCode":"        const Collector = new CollectorApi();\n        const { success, reason, documents } = await Collector.processRawText(\n          textContent,\n          metadata\n        );\n\n        if (!success) {\n          response.status(500).json({ success: false, error: reason });\n          return;\n        }\n\n        const { failedToEmbed = [], errors = [] } = await Document.addDocuments(\n          workspace,\n          [documents[0].location],\n          user?.id\n        );\n\n        if (failedToEmbed.length > 0) {\n          response.status(500).json({ success: false, error: errors[0] });\n          return;\n        }\n\n        await Telemetry.sendTelemetry(\"browser_extension_embed_content\");\n        response.status(200).json({ success: true });\n      } catch (error) {\n        console.error(error);\n        response.status(500).json({ error: \"Failed to embed content\" });\n      }\n    }\n  );\n\n  app.post(\n    \"/browser-extension/upload-content\",\n    [validBrowserExtensionApiKey],\n    async (request, response) => {\n      try {\n        const { textContent, metadata } = reqBody(request);","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/Mintplex-Labs/anything-llm/blob/3aec848f2885144aa8f1e53b9731a04310d5d558/server/endpoints/browserExtension.js#L97-L133","documentation":"Surfaced when Document.addDocuments returns a non-empty failedToEmbed array after the collector already processed the text (POST /browser-extension/embed-content). This is the vector-store write path: the first per-file error from errors is returned. Typical root causes are embedder/vector-dimension mismatches (workspace embedder changed after vectors existed), an invalid or out-of-quota embedder API key, or a vector DB (local LanceDB folder or external provider) that is unwritable or unreachable.","triggerScenarios":"Workspace embedder switched (e.g. default -> OpenAI) so new vectors have a different dimension than the index expects; embedder provider key invalid/expired (401 surfaced in errors[0]); vector DB storage path read-only or corrupted; Ollama/local embedder endpoint down.","commonSituations":"Changing Embedder Preferences after documents were already embedded; provider outage mid-batch; container storage volume permissions changed.","solutions":["Read errors[0] - it is the raw embedder/vector-DB error (dimension mismatch text, 401, ECONNREFUSED) and names the failing component.","In Admin -> Embedder Preferences, confirm provider, key, and model still match what the workspace was created with.","If you intentionally changed embedders, clear the workspace's embedded documents (or embed into a fresh workspace) so index dimensions match the new embedder.","Verify the vector DB location is writable (local) or the provider is reachable (external)."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const embedder = await getSystemPreferences(); // admin API\nif (!embedder?.EmbeddingEngine && !isDefaultOk) throw new Error('No embedder configured');\nawait testEmbedderConnection(); // admin 'test embedder' endpoint before bulk embedding","typeGuard":null,"tryCatchPattern":"try { await embedContent(apiKey, payload); }\ncatch (e) {\n  if (e.status === 500 && e.body?.success === false) {\n    // errors[0] is the raw embedder error - dimension/auth text means config, not retry\n    throw new Error(`Embedding backend rejected the doc: ${e.body.error}`);\n  }\n  throw e;\n}","preventionTips":["Never switch embedder provider/model on a workspace that already has embedded documents - re-embed from scratch instead.","Keep embedder provider API keys valid and quota available.","Ensure the vector DB storage path is writable before bulk imports."],"tags":["browser-extension","embedding","vector-database","http-500"],"backgroundTag":"embedding-failed","analyzedSha":"3aec848f2885144aa8f1e53b9731a04310d5d558","analyzedAt":"2026-08-18T10:02:21.017Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}