Skip to content

Bug: google-vertex provider merged into google transport path in 2026.3.28 (regression) #58775

Description

@xuanmingguo

Bug Summary

In OpenClaw 2026.3.28, the google-vertex provider is incorrectly treated as a Google AI alias by shouldNormalizeGoogleGenerativeAiProviderConfig. This causes Vertex AI requests to use the wrong URL format and auth method, breaking the entire google-vertex provider.

Root Cause

The changelog states:

"Google/models: resolve Gemini 3.1 pro, flash, and flash-lite for all Google provider aliases"

The intent was to unify model ID resolution (e.g., gemini-3.1-progemini-3.1-pro-preview) across all Google aliases. However, shouldNormalizeGoogleGenerativeAiProviderConfig included google-vertex in its normalization, which merged not just model ID resolution but also the transport path and auth method — this is an over-merge.

Evidence This Is a Bug (Not Intentional)

  1. google-vertex still exists as a separate provider — if the intent was to merge it, there would be no reason to keep the provider name. Its only purpose is different billing/auth from google (AI Studio).

  2. anthropic-vertex was NOT merged — in the same version, anthropic-vertex retains independent transport, auth, and stream implementations (anthropic-vertex-CRO19LKV.js, anthropic-vertex-stream.ts). This confirms Vertex AI paths were not intentionally deprecated.

  3. SDK still supports Vertex AI@google/genai v1.47.0 fully preserves vertexai: true, project, location, and service account auth. No SDK-side change justifies this.

  4. Environment variables still referencedGOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, GOOGLE_APPLICATION_CREDENTIALS are still read in the code, confirming Vertex AI support was not intentionally removed.

Impact

  • URL format changed from Vertex AI style (/projects/.../locations/.../publishers/google/models/...) to Google AI style (/models/...)
  • Service account auth (google-vertex with ADC) replaced by GEMINI_API_KEY, making Google Cloud billing credits unusable
  • Any google-vertex/* model assignment silently routes to the wrong endpoint and fails

Expected Behavior

google-vertex should use Vertex AI transport/auth (service account ADC, Vertex AI URL format) while still benefiting from unified model ID resolution.

Workaround

Currently setting models.providers.google-vertex.api = "google-generative-ai" in config forces the correct adapter, but this loses the Vertex AI-specific URL/auth benefits and is a hack rather than a fix.

Environment

  • OpenClaw: 2026.3.28 (f9b1079)
  • Provider config: google-vertex with service account ADC
  • Models affected: google-vertex/gemini-3.1-pro-preview and all google-vertex/* models

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions