Hi @martkev -- good news: your model name is correct. The Vertex AI model ID for Claude Opus 4.6 is indeed claude-opus-4-6 (per Anthropic's official documentation). The issue is on the Databricks side -- the UI enforces an internal allowlist of recognized model names for each external provider, and that allowlist can lag behind what the providers actually support.
Here are some approaches to work around this.
———
Understanding the Problem
When you create an external model endpoint in Databricks, the UI validates the model name against a hardcoded list of known model IDs for each provider. For the google-cloud-vertex-ai provider, the allowlist may not yet include the latest Claude models. The model name itself is valid on Vertex AI -- Databricks just doesn't know about it yet.
For reference, here are the current Vertex AI model IDs from Anthropic's documentation:
|
Model
|
Vertex AI Model ID
|
|
Claude Opus 4.6
|
claude-opus-4-6
|
|
Claude Sonnet 4.6
|
claude-sonnet-4-6
|
|
Claude Sonnet 4.5
|
claude-sonnet-4-5@20250929
|
|
Claude Opus 4.5
|
claude-opus-4-5@20251101
|
|
Claude Opus 4.1
|
claude-opus-4-1@20250805
|
|
Claude Sonnet 4
|
claude-sonnet-4@20250514
|
|
Claude Opus 4
|
claude-opus-4@20250514
|
|
Claude Haiku 4.5
|
claude-haiku-4-5@20251001
|
———
Workaround 1: Create the Endpoint via REST API (Bypasses UI Validation)
The UI validation is client-side. You can often bypass it by creating the endpoint directly through the Databricks REST API or the MLflow Deployments SDK, which may not enforce the same allowlist:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="claude-opus-vertex",
config={
"served_entities": [
{
"external_model": {
"name": "claude-opus-4-6",
"provider": "google-cloud-vertex-ai",
"task": "llm/v1/chat",
"google_cloud_vertex_ai_config": {
"private_key": "{{secrets/your-scope/vertex-private-key}}",
"region": "us-east1",
"project_id": "your-gcp-project-id",
},
}
}
],
},
)
Or via curl:
curl -X POST "https://<your-databricks-host>/api/2.0/serving-endpoints" \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "claude-opus-vertex",
"config": {
"served_entities": [{
"external_model": {
"name": "claude-opus-4-6",
"provider": "google-cloud-vertex-ai",
"task": "llm/v1/chat",
"google_cloud_vertex_ai_config": {
"private_key": "{{secrets/your-scope/vertex-private-key}}",
"region": "us-east1",
"project_id": "your-gcp-project-id"
}
}
}]
}
}'
Note: If the API also rejects the model name, move on to Workaround 2.
———
Workaround 2: Use the "anthropic" Provider Directly (Instead of Vertex AI)
If your primary goal is to use Claude Opus 4.6 through Databricks AI Gateway and you have an Anthropic API key, you can skip Vertex AI entirely and use the anthropic provider directly:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="claude-opus-direct",
config={
"served_entities": [
{
"external_model": {
"name": "claude-opus-4-6",
"provider": "anthropic",
"task": "llm/v1/chat",
"anthropic_config": {
"anthropic_api_key": "{{secrets/your-scope/anthropic-key}}",
},
}
}
],
},
)
The anthropic provider allowlist tends to be updated faster than the Vertex AI one, since the model names come directly from Anthropic. This also gives you access to the global endpoint with no region restrictions.
———
Workaround 3: Use the "custom" Provider with Vertex AI's OpenAI-Compatible Endpoint
Databricks supports a custom provider type that can point to any OpenAI-compatible API. Since Vertex AI now offers an OpenAI-compatible endpoint for Claude models, you can use this to bypass the allowlist entirely:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="claude-opus-custom-vertex",
config={
"served_entities": [
{
"external_model": {
"name": "claude-opus-4-6",
"provider": "custom",
"task": "llm/v1/chat",
"custom_provider_config": {
"url": "https://us-east1-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT/locations/us-east1/publishers/an...",
"bearer_token_auth": "{{secrets/your-scope/gcp-access-token}}",
},
}
}
],
},
)
Caveat: The custom provider approach requires managing the GCP access token yourself (OAuth tokens expire), so this is more of a temporary workaround than a production solution.
———
Workaround 4: Try a Versioned Model String
Some Databricks allowlists recognize versioned model strings that include the @date suffix. Try these variations in the UI:
- claude-opus-4-6 (what you already tried)
- claude-opus-4-6@20250205
- claude-opus-4-6@latest
The @date suffix is how Vertex AI pins model versions internally. For example, claude-sonnet-4-5@20250929 is the pinned version of Claude Sonnet 4.5. However, Claude Opus 4.6 and Sonnet 4.6 appear to use the bare name (without @date) in Vertex AI itself.
———
The Real Fix: File a Support Ticket
Since the model name is valid on Vertex AI but rejected by Databricks, this is an allowlist gap that Databricks needs to fix on their side. I would recommend:
- Filing a Databricks support ticket requesting that claude-opus-4-6 and claude-sonnet-4-6 be added to the google-cloud-vertex-ai provider's model allowlist.
- Reference this Anthropic documentation for the official model IDs: https://platform.claude.com/docs/en/build-with-claude/claude-on-vertex-ai
Allowlist updates are typically released in platform patches and don't require a full version upgrade.
———
Summary
|
Approach
|
Effort
|
Production-Ready
|
|
**REST API / SDK** (bypass UI)
|
Low
|
Yes, if API accepts it
|
|
**anthropic provider** (skip Vertex)
|
Low
|
Yes
|
|
custom provider
|
Medium
|
No (token management)
|
|
Versioned model string
|
Low
|
Worth a try
|
|
**Support ticket** (permanent fix)
|
Low
|
Yes (once resolved)
|
Bottom line: Your model name is correct. This is a Databricks allowlist lag issue. Use the REST API or the direct anthropic provider as a workaround while waiting for the allowlist to be updated.
Hope this helps!
———
References
Anuj Lathi
Solutions Engineer @ Databricks