mlflow/mlflow · error · NotImplementedError
{self.__class__.__name__} does not support update_webhook
Error message
{self.__class__.__name__} does not support update_webhook What it means
AbstractStore.update_webhook is a stub that raises NotImplementedError naming the concrete store class. The configured model-registry backend does not override update_webhook, so modifying an existing webhook is unsupported there.
Source
Thrown at mlflow/store/model_registry/abstract_store.py:1282
secret: str | None = None,
status: WebhookStatus | None = None,
) -> Webhook:
"""
Update an existing webhook.
Args:
webhook_id: Webhook ID.
name: New webhook name.
description: New webhook description.
url: New webhook URL.
events: New list of event types.
secret: New webhook secret.
status: New webhook status.
Returns:
A single updated :py:class:`mlflow.entities.model_registry.Webhook` object.
"""
raise NotImplementedError(f"{self.__class__.__name__} does not support update_webhook")
def delete_webhook(self, webhook_id: str) -> None:
"""
Delete a webhook.
Args:
webhook_id: Webhook ID.
Returns:
None
"""
raise NotImplementedError(f"{self.__class__.__name__} does not support delete_webhook")
def test_webhook(self, webhook_id: str, event: WebhookEvent | None = None) -> WebhookTestResult:
"""
Test a webhook by sending a test event to the specified URL.
Args:View on GitHub (pinned to 6a27f2decc)
Solutions
- Use a registry backend that supports webhooks (e.g., Databricks REST store)
- Recreate the webhook instead of updating it if the backend lacks update support
- Upgrade MLflow to a version where the backend implements update_webhook
Example fix
// before
client = MlflowClient(registry_uri='./mlruns')
client.update_webhook('wh-123', description='new')
// after
mlflow.set_registry_uri('databricks')
client = MlflowClient()
client.update_webhook('wh-123', description='new') Defensive patterns
Strategy: try-catch
Validate before calling
uri = mlflow.get_registry_uri()
if not uri.startswith('databricks'):
raise RuntimeError('update_webhook requires a backend that implements webhooks') Type guard
def webhook_updatable(store_cls) -> bool:
from mlflow.store.model_registry.abstract_store import AbstractStore
return store_cls.update_webhook is not AbstractStore.update_webhook Try / catch
try:
client.update_webhook(webhook_id, description='new')
except NotImplementedError as e:
logger.error('Backend does not support update_webhook: %s', e) Prevention
- Only manage webhooks against backends that implement the webhook API
- Keep registry URIs consistent across environments
- Document per-backend feature support in team runbooks
When it happens
Trigger: Calling MlflowClient().update_webhook(webhook_id, ...) against a registry store that does not implement webhook updates (e.g., FileStore or a SqlAlchemy backend without webhook support).
Common situations: Editing webhook URL/secret/status while using a local file or sqlite registry instead of Databricks; copying webhook admin code between environments with different registry URIs.
Related errors
- {self.__class__.__name__} does not support list_webhooks_by_
- {self.__class__.__name__} does not support delete_webhook
- {self.__class__.__name__} does not support test_webhook
- {self.__class__.__name__} does not support create_webhook
- {self.__class__.__name__} does not support get_webhook
AI-assisted analysis of mlflow/mlflow@6a27f2decc (2026-08-29).
Data as JSON: /api/errors/08f52cab5af55829.
Report an issue: GitHub.