continuedev/continue · error · Error
Unsupported transport type: ${this.options.type}
Error message
Unsupported transport type: ${this.options.type} What it means
The Vertex endpoint returned a non-2xx HTTP status for a non-streaming chat request; the error body from Google is embedded for diagnosis. This wraps upstream API failures (auth, quota, model access, malformed request).
Source
Thrown at core/context/mcp/MCPConnection.ts:256
}
} else {
// SSE/HTTP: if type isn't explicit: try http and fall back to sse
if (this.options.type === "sse") {
const transport = this.constructSseTransport(this.options);
await this.client.connect(transport, {});
this.transport = transport;
} else if (this.options.type === "streamable-http") {
const transport = this.constructHttpTransport(this.options);
await this.client.connect(transport, {});
this.transport = transport;
} else if (this.options.type === "websocket") {
const transport = this.constructWebsocketTransport(
this.options,
);
await this.client.connect(transport, {});
this.transport = transport;
} else if (this.options.type) {
throw new Error(
`Unsupported transport type: ${this.options.type}`,
);
} else {
try {
const transport = this.constructHttpTransport({
...this.options,
type: "streamable-http",
});
await this.client.connect(transport, {});
this.transport = transport;
} catch (e) {
try {
const transport = this.constructSseTransport({
...this.options,
type: "sse",
});
await this.client.connect(transport, {});
this.transport = transport;View on GitHub (pinned to 5522c6f44c)
Solutions
- Read the embedded JSON body — Google's error message states the exact reason
- For 403, grant roles/aiplatform.user to the service account and enable aiplatform.googleapis.com
- For 404, verify project id, region, and full model id including @version
- For 429, add backoff/retry and request quota increase
Defensive patterns
Strategy: retry
Try / catch
try { const r = await api.chatCompletionNonStream(body, signal); } catch (e) { const msg = (e as Error).message; if (msg.includes('429')) await backoffAndRetry(); else if (msg.includes('401') || msg.includes('403')) refreshCreds(); else throw e; } Prevention
- Parse status from the message to route handling (auth vs quota vs 404)
- Keep requests within quota; implement jittered backoff
- Verify project/region/model enablement in deployment checklists
When it happens
Trigger: 401/403 expired token or missing aiplatform.user role; 404 wrong project/region/model id; 429 quota exceeded; 400 invalid request body converted for the publisher endpoint.
Common situations: Expired cached OAuth token; service account lacks Vertex AI User role; model not enabled in the region; billing disabled on the project; rate limits under load.
Related errors
- Error getting prompt: MCP Connection ${serverName} not found
- No MCP authorization code found for ${serverUrl}
- Failed to fetch messages: ${response.statusText}
- URL is not defined in params
- Response body is null
AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27).
Data as JSON: /api/errors/1351dfc3fb43d1fe.
Report an issue: GitHub.