Skip to content

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

@xuanmingguo

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-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.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: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions