continuedev/continue · error · Error
No workspace directories found. Make sure you've opened a fo
Error message
No workspace directories found. Make sure you've opened a folder in your IDE.
What it means
The model string could not be mapped to any known Vertex publisher (gemini, anthropic, mistral) in the non-streaming chat path, so no endpoint URL exists to call. determineVertexProvider returned a value with no matching switch case.
Source
Thrown at core/config/workspace/workspaceBlocks.ts:164
const suffix = counter === 0 ? "" : `-${counter}`;
fileUri = joinPathsToUri(
baseDirUri,
`${baseFilename}${suffix}.${fileExtension}`,
);
counter++;
} while (await fileExists(fileUri));
return fileUri;
}
export async function createNewWorkspaceBlockFile(
ide: IDE,
blockType: BlockType,
baseFilename?: string,
): Promise<void> {
const workspaceDirs = await ide.getWorkspaceDirs();
if (workspaceDirs.length === 0) {
throw new Error(
"No workspace directories found. Make sure you've opened a folder in your IDE.",
);
}
const baseDirUri = joinPathsToUri(workspaceDirs[0], `.continue/${blockType}`);
const fileUri = await findAvailableFilename(
baseDirUri,
blockType,
ide.fileExists.bind(ide),
undefined,
false,
baseFilename,
);
const fileContent = getFileContent(blockType);
await ide.writeFile(fileUri, fileContent);View on GitHub (pinned to 5522c6f44c)
Solutions
- Use a supported model id with the naming the adapter expects (gemini-*, claude-*@*, mistral/codestral)
- Update the openai-adapters package — newer versions add provider mappings
- Check determineVertexProvider's accepted prefixes and match them exactly
Example fix
// before
await api.chatCompletionNonStream({ model: 'gpt-4o', messages }, signal);
// after
await api.chatCompletionNonStream({ model: 'gemini-1.5-pro', messages }, signal); Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = [/^gemini/, /^claude/, /^mistral/, /codestral/];
const isSupportedModel = (m: string) => SUPPORTED.some(r => r.test(m));
if (!isSupportedModel(body.model)) throw new Error(`model ${body.model} not routable on Vertex adapter`); Type guard
const isVertexModel = (m: string): boolean => /^(gemini|claude|mistral|codestral)/.test(m);
Try / catch
try { ... } catch (e) { if ((e as Error).message.startsWith('Unsupported model')) { /* fix model id or update package */ } throw e; } Prevention
- Centralize model id constants
- Update the adapter when adopting new Vertex models
When it happens
Trigger: body.model is misspelled, lacks the expected prefix/extension (e.g. missing @version or publish prefix), or uses a model family the adapter doesn't route (e.g. 'llama3-' or 'jamba-').
Common situations: Copying model names from other providers (OpenAI 'gpt-4o', Anthropic direct 'claude-3-5') into a Vertex adapter; typos; new Vertex model not yet supported by the installed adapter version.
Related errors
- no query params found
- URL is not defined in params
- Response body is null
- Profile ${profileId} not found
- No workspace directories found. Make sure you've opened a fo
AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27).
Data as JSON: /api/errors/a6efcc8f93b3cd00.
Report an issue: GitHub.