Skip to content

Issue Title: Bug: Codebase indexing fails with "fetch failed" when using Gemini embedder #6626

@GreyHorizonX

Description

@GreyHorizonX

What specific problem does this solve?

Description
When configuring the Codebase Indexing feature with Gemini as the embedding provider, the initial scan fails with a fetch failed error. This prevents the user from creating a semantic index of their project, blocking a core feature.

Steps to Reproduce
Navigate to the ”Codebase Indexing“ settings within the extension.
Enable the feature by checking “Enable Codebase Indexing”.
Set the "Embedder Provider“ to Gemini.
Enter a valid Gemini API Key.
Keep the default model: text-embedding-004.
Set the "Qdrant URL" to a running local instance (e.g., http://localhost:6333).
Click the "Start” button to initiate indexing.
The status immediately shows the “Error - Failed during initial scan: fetch failed”.
Expected Behavior
The indexing process should start successfully. The extension should connect to the Gemini API to generate embeddings for the codebase and then store them in the specified local Qdrant instance.

Image

Actual Behavior
The process fails immediately with a generic fetch failed network error.

and the log:

Image
[cloud-settings] Error fetching organization settings:
Error: fetch failed
TypeError: fetch failed
    at node:internal/deps/undici/undici:13392:13
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at globalThis.fetch (file:///root/.vscode-server/bin/e249dada235c2083c83813bd65b7f4707fb97b76/out/vs/workbench/api/node/extensionHostProcess.js:174:20102)
    at nae.fetchSettings (/root/.vscode-server/extensions/packages/cloud/src/CloudSettingsService.ts:84:21)
    at aV.callback (/root/.vscode-server/extensions/packages/cloud/src/CloudSettingsService.ts:43:12)
    at aV.executeCallback (/root/.vscode-server/extensions/packages/cloud/src/RefreshTimer.ts:146:19)

so i find the

packages/cloud/src/CloudSettingsService.ts:84:21
try {
			const response = await fetch(`${getRooCodeApiUrl()}/api/organization-settings`, {
				headers: {
					Authorization: `Bearer ${token}`,
				},
			})

			if (!response.ok) {
				this.log(
					"[cloud-settings] Failed to fetch organization settings:",
					response.status,
					response.statusText,
				)
				return false
			}

packages/cloud/src/config.ts
export const PRODUCTION_CLERK_BASE_URL = "https://clerk.roocode.com"
export const PRODUCTION_ROO_CODE_API_URL = "https://app.roocode.com"

export const getClerkBaseUrl = () => process.env.CLERK_BASE_URL || PRODUCTION_CLERK_BASE_URL
export const getRooCodeApiUrl = () => process.env.ROO_CODE_API_URL || PRODUCTION_ROO_CODE_API_URL

I executed and It can connect, so I really don't know what's wrong.

curl -v "https://app.roocode.com/api/organization-settings"
Image

To prove my network environment, I manually test the Gemini API:
Image

I don't know if there are issues with the steps above. This problem has troubled me for a long time; it's always been fetch failed. I'm looking forward to your good news.

Additional context (optional)

No response

Roo Code Task Links (Optional)

No response

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear impact and context

Interested in implementing this?

  • Yes, I'd like to help implement this feature

Implementation requirements

  • I understand this needs approval before implementation begins

How should this be solved? (REQUIRED if contributing, optional otherwise)

No response

How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)

No response

Technical considerations (REQUIRED if contributing, optional otherwise)

No response

Trade-offs and risks (REQUIRED if contributing, optional otherwise)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue - Needs ScopingValid, but needs effort estimate or design input before work can start.bugSomething isn't workingenhancementNew feature or requestproposal

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions