Skip to content

Exceptions

ZenML specific exception definitions.

ActionExistsError

Bases: EntityExistsError

Raised when registering an action with a name that already exists.

Source code in src/zenml/exceptions.py
175
176
class ActionExistsError(EntityExistsError):
    """Raised when registering an action with a name that already exists."""

ArtifactInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the Artifact interface in an unsupported way.

Source code in src/zenml/exceptions.py
123
124
class ArtifactInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the Artifact interface in an unsupported way."""

ArtifactStoreInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the Artifact Store interface in an unsupported way.

Source code in src/zenml/exceptions.py
135
136
class ArtifactStoreInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the Artifact Store interface in an unsupported way."""

AuthorizationException

Bases: ZenMLBaseException

Raised when an authorization error occurred while trying to access a ZenML resource .

Source code in src/zenml/exceptions.py
46
47
class AuthorizationException(ZenMLBaseException):
    """Raised when an authorization error occurred while trying to access a ZenML resource ."""

BackupSecretsStoreNotConfiguredError

Bases: NotImplementedError

Raised when a backup secrets store is not configured.

Source code in src/zenml/exceptions.py
315
316
class BackupSecretsStoreNotConfiguredError(NotImplementedError):
    """Raised when a backup secrets store is not configured."""

CredentialsNotValid

Bases: AuthorizationException

Raised when the credentials provided are invalid.

This is a subclass of AuthorizationException and should only be raised when the authentication credentials are invalid (e.g. expired API token, invalid username/password, invalid signature). If caught by the ZenML client, it will trigger an invalidation of the currently cached API token and a re-authentication flow.

Source code in src/zenml/exceptions.py
50
51
52
53
54
55
56
57
58
class CredentialsNotValid(AuthorizationException):
    """Raised when the credentials provided are invalid.

    This is a subclass of AuthorizationException and should only be raised when
    the authentication credentials are invalid (e.g. expired API token, invalid
    username/password, invalid signature). If caught by the ZenML client, it
    will trigger an invalidation of the currently cached API token and a
    re-authentication flow.
    """

CustomFlavorImportError

Bases: ImportError

Raised when failing to import a custom flavor.

Source code in src/zenml/exceptions.py
319
320
class CustomFlavorImportError(ImportError):
    """Raised when failing to import a custom flavor."""

DoesNotExistException

Bases: ZenMLBaseException

Raises exception when the entity does not exist in the system but an action is being done that requires it to be present.

Source code in src/zenml/exceptions.py
61
62
63
64
65
66
67
68
69
70
class DoesNotExistException(ZenMLBaseException):
    """Raises exception when the entity does not exist in the system but an action is being done that requires it to be present."""

    def __init__(self, message: str):
        """Initializes the exception.

        Args:
            message: Message with details of exception.
        """
        super().__init__(message)

__init__(message)

Initializes the exception.

Parameters:

Name Type Description Default
message str

Message with details of exception.

required
Source code in src/zenml/exceptions.py
64
65
66
67
68
69
70
def __init__(self, message: str):
    """Initializes the exception.

    Args:
        message: Message with details of exception.
    """
    super().__init__(message)

DuplicateRunNameError

Bases: RuntimeError

Raises exception when a run with the same name already exists.

Source code in src/zenml/exceptions.py
147
148
149
150
151
152
153
154
155
156
157
158
159
160
class DuplicateRunNameError(RuntimeError):
    """Raises exception when a run with the same name already exists."""

    def __init__(
        self,
        message: str = "Unable to run a pipeline with a run name that "
        "already exists.",
    ):
        """Initializes the exception.

        Args:
            message: Message with details of exception.
        """
        super().__init__(message)

__init__(message='Unable to run a pipeline with a run name that already exists.')

Initializes the exception.

Parameters:

Name Type Description Default
message str

Message with details of exception.

'Unable to run a pipeline with a run name that already exists.'
Source code in src/zenml/exceptions.py
150
151
152
153
154
155
156
157
158
159
160
def __init__(
    self,
    message: str = "Unable to run a pipeline with a run name that "
    "already exists.",
):
    """Initializes the exception.

    Args:
        message: Message with details of exception.
    """
    super().__init__(message)

DuplicatedConfigurationError

Bases: ZenMLBaseException

Raised when a configuration parameter is set twice.

Source code in src/zenml/exceptions.py
219
220
class DuplicatedConfigurationError(ZenMLBaseException):
    """Raised when a configuration parameter is set twice."""

EntityCreationError

Bases: ZenMLBaseException, RuntimeError

Raised when failing to create an entity.

Source code in src/zenml/exceptions.py
171
172
class EntityCreationError(ZenMLBaseException, RuntimeError):
    """Raised when failing to create an entity."""

EntityExistsError

Bases: ZenMLBaseException

Raised when trying to register an entity that already exists.

Source code in src/zenml/exceptions.py
167
168
class EntityExistsError(ZenMLBaseException):
    """Raised when trying to register an entity that already exists."""

EventSourceExistsError

Bases: EntityExistsError

Raised when trying to register an event source with existing name.

Source code in src/zenml/exceptions.py
195
196
class EventSourceExistsError(EntityExistsError):
    """Raised when trying to register an event source with existing name."""

GitException

Bases: ZenMLBaseException

Raises exception when a problem occurs in git resolution.

Source code in src/zenml/exceptions.py
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
class GitException(ZenMLBaseException):
    """Raises exception when a problem occurs in git resolution."""

    def __init__(
        self,
        message: str = "There is a problem with git resolution. "
        "Please make sure that all relevant files "
        "are committed.",
    ):
        """Initializes the exception.

        Args:
            message: Message with details of exception.
        """
        super().__init__(message)

__init__(message='There is a problem with git resolution. Please make sure that all relevant files are committed.')

Initializes the exception.

Parameters:

Name Type Description Default
message str

Message with details of exception.

'There is a problem with git resolution. Please make sure that all relevant files are committed.'
Source code in src/zenml/exceptions.py
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
def __init__(
    self,
    message: str = "There is a problem with git resolution. "
    "Please make sure that all relevant files "
    "are committed.",
):
    """Initializes the exception.

    Args:
        message: Message with details of exception.
    """
    super().__init__(message)

GitNotFoundError

Bases: ImportError

Raised when ZenML CLI is used to interact with examples on a machine with no git installation.

Source code in src/zenml/exceptions.py
215
216
class GitNotFoundError(ImportError):
    """Raised when ZenML CLI is used to interact with examples on a machine with no git installation."""

HydrationError

Bases: ZenMLBaseException

Raised when the model hydration failed.

Source code in src/zenml/exceptions.py
243
244
class HydrationError(ZenMLBaseException):
    """Raised when the model hydration failed."""

IllegalOperationError

Bases: ZenMLBaseException

Raised when an illegal operation is attempted.

Source code in src/zenml/exceptions.py
223
224
class IllegalOperationError(ZenMLBaseException):
    """Raised when an illegal operation is attempted."""

InitializationException

Bases: ZenMLBaseException

Raised when an error occurred during initialization of a ZenML repository.

Source code in src/zenml/exceptions.py
42
43
class InitializationException(ZenMLBaseException):
    """Raised when an error occurred during initialization of a ZenML repository."""

InputResolutionError

Bases: ZenMLBaseException

Raised when step input resolving failed.

Source code in src/zenml/exceptions.py
235
236
class InputResolutionError(ZenMLBaseException):
    """Raised when step input resolving failed."""

IntegrationError

Bases: ZenMLBaseException

Raises exceptions when a requested integration can not be activated.

Source code in src/zenml/exceptions.py
143
144
class IntegrationError(ZenMLBaseException):
    """Raises exceptions when a requested integration can not be activated."""

MaterializerInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the Materializer interface in an unsupported way.

Source code in src/zenml/exceptions.py
111
112
class MaterializerInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the Materializer interface in an unsupported way."""

MethodNotAllowedError

Bases: ZenMLBaseException

Raised when the server does not allow a request method.

Source code in src/zenml/exceptions.py
227
228
class MethodNotAllowedError(ZenMLBaseException):
    """Raised when the server does not allow a request method."""

OAuthError

Bases: ValueError

OAuth2 error.

Source code in src/zenml/exceptions.py
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
class OAuthError(ValueError):
    """OAuth2 error."""

    def __init__(
        self,
        error: str,
        status_code: int = 400,
        error_description: Optional[str] = None,
        error_uri: Optional[str] = None,
    ) -> None:
        """Initializes the OAuthError.

        Args:
            status_code: HTTP status code.
            error: Error code.
            error_description: Error description.
            error_uri: Error URI.
        """
        self.status_code = status_code
        self.error = error
        self.error_description = error_description
        self.error_uri = error_uri

    def to_dict(self) -> Dict[str, Optional[str]]:
        """Returns the OAuthError as a dictionary.

        Returns:
            The OAuthError as a dictionary.
        """
        return {
            "error": self.error,
            "error_description": self.error_description,
            "error_uri": self.error_uri,
        }

    def __str__(self) -> str:
        """String function.

        Returns:
            the error message
        """
        return f"{self.error}: {self.error_description or ''}"

__init__(error, status_code=400, error_description=None, error_uri=None)

Initializes the OAuthError.

Parameters:

Name Type Description Default
status_code int

HTTP status code.

400
error str

Error code.

required
error_description Optional[str]

Error description.

None
error_uri Optional[str]

Error URI.

None
Source code in src/zenml/exceptions.py
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
def __init__(
    self,
    error: str,
    status_code: int = 400,
    error_description: Optional[str] = None,
    error_uri: Optional[str] = None,
) -> None:
    """Initializes the OAuthError.

    Args:
        status_code: HTTP status code.
        error: Error code.
        error_description: Error description.
        error_uri: Error URI.
    """
    self.status_code = status_code
    self.error = error
    self.error_description = error_description
    self.error_uri = error_uri

__str__()

String function.

Returns:

Type Description
str

the error message

Source code in src/zenml/exceptions.py
302
303
304
305
306
307
308
def __str__(self) -> str:
    """String function.

    Returns:
        the error message
    """
    return f"{self.error}: {self.error_description or ''}"

to_dict()

Returns the OAuthError as a dictionary.

Returns:

Type Description
Dict[str, Optional[str]]

The OAuthError as a dictionary.

Source code in src/zenml/exceptions.py
290
291
292
293
294
295
296
297
298
299
300
def to_dict(self) -> Dict[str, Optional[str]]:
    """Returns the OAuthError as a dictionary.

    Returns:
        The OAuthError as a dictionary.
    """
    return {
        "error": self.error,
        "error_description": self.error_description,
        "error_uri": self.error_uri,
    }

PipelineConfigurationError

Bases: ZenMLBaseException

Raises exceptions when a pipeline configuration contains invalid values.

Source code in src/zenml/exceptions.py
139
140
class PipelineConfigurationError(ZenMLBaseException):
    """Raises exceptions when a pipeline configuration contains invalid values."""

PipelineInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the Pipeline interface in an unsupported way.

Source code in src/zenml/exceptions.py
119
120
class PipelineInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the Pipeline interface in an unsupported way."""

PipelineNotSucceededException

Bases: ZenMLBaseException

Raises exception when trying to fetch artifacts from a not succeeded pipeline.

Source code in src/zenml/exceptions.py
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class PipelineNotSucceededException(ZenMLBaseException):
    """Raises exception when trying to fetch artifacts from a not succeeded pipeline."""

    def __init__(
        self,
        name: str = "",
        message: str = "{} is not yet completed successfully.",
    ):
        """Initializes the exception.

        Args:
            name: Name of the pipeline.
            message: Message with details of exception.
        """
        super().__init__(message.format(name))

__init__(name='', message='{} is not yet completed successfully.')

Initializes the exception.

Parameters:

Name Type Description Default
name str

Name of the pipeline.

''
message str

Message with details of exception.

'{} is not yet completed successfully.'
Source code in src/zenml/exceptions.py
76
77
78
79
80
81
82
83
84
85
86
87
def __init__(
    self,
    name: str = "",
    message: str = "{} is not yet completed successfully.",
):
    """Initializes the exception.

    Args:
        name: Name of the pipeline.
        message: Message with details of exception.
    """
    super().__init__(message.format(name))

ProvisioningError

Bases: ZenMLBaseException

Raised when an error occurs when provisioning resources for a StackComponent.

Source code in src/zenml/exceptions.py
211
212
class ProvisioningError(ZenMLBaseException):
    """Raised when an error occurs when provisioning resources for a StackComponent."""

SecretExistsError

Bases: EntityExistsError

Raised when trying to register a secret with existing name.

Source code in src/zenml/exceptions.py
199
200
class SecretExistsError(EntityExistsError):
    """Raised when trying to register a secret with existing name."""

SecretsStoreNotConfiguredError

Bases: NotImplementedError

Raised when a secrets store is not configured.

Source code in src/zenml/exceptions.py
311
312
class SecretsStoreNotConfiguredError(NotImplementedError):
    """Raised when a secrets store is not configured."""

SettingsResolvingError

Bases: ZenMLBaseException

Raised when resolving settings failed.

Source code in src/zenml/exceptions.py
231
232
class SettingsResolvingError(ZenMLBaseException):
    """Raised when resolving settings failed."""

StackComponentDeploymentError

Bases: ZenMLBaseException

Raises exception when deploying a stack component fails.

Source code in src/zenml/exceptions.py
131
132
class StackComponentDeploymentError(ZenMLBaseException):
    """Raises exception when deploying a stack component fails."""

StackComponentExistsError

Bases: EntityExistsError

Raised when trying to register a stack component with existing name.

Source code in src/zenml/exceptions.py
191
192
class StackComponentExistsError(EntityExistsError):
    """Raised when trying to register a stack component with existing name."""

StackComponentInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the stack components in an unsupported way.

Source code in src/zenml/exceptions.py
127
128
class StackComponentInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the stack components in an unsupported way."""

StackComponentValidationError

Bases: ZenMLBaseException

Raised when a stack component configuration is not valid.

Source code in src/zenml/exceptions.py
207
208
class StackComponentValidationError(ZenMLBaseException):
    """Raised when a stack component configuration is not valid."""

StackExistsError

Bases: EntityExistsError

Raised when trying to register a stack with name that already exists.

Source code in src/zenml/exceptions.py
187
188
class StackExistsError(EntityExistsError):
    """Raised when trying to register a stack with name that already exists."""

StackValidationError

Bases: ZenMLBaseException

Raised when a stack configuration is not valid.

Source code in src/zenml/exceptions.py
203
204
class StackValidationError(ZenMLBaseException):
    """Raised when a stack configuration is not valid."""

StepContextError

Bases: ZenMLBaseException

Raises exception when interacting with a StepContext in an unsupported way.

Source code in src/zenml/exceptions.py
115
116
class StepContextError(ZenMLBaseException):
    """Raises exception when interacting with a StepContext in an unsupported way."""

StepInterfaceError

Bases: ZenMLBaseException

Raises exception when interacting with the Step interface in an unsupported way.

Source code in src/zenml/exceptions.py
107
108
class StepInterfaceError(ZenMLBaseException):
    """Raises exception when interacting with the Step interface in an unsupported way."""

SubscriptionUpgradeRequiredError

Bases: ZenMLBaseException

Raised when user tries to perform an action outside their current subscription tier.

Source code in src/zenml/exceptions.py
239
240
class SubscriptionUpgradeRequiredError(ZenMLBaseException):
    """Raised when user tries to perform an action outside their current subscription tier."""

TriggerExistsError

Bases: EntityExistsError

Raised when registering a trigger with name that already exists.

Source code in src/zenml/exceptions.py
179
180
class TriggerExistsError(EntityExistsError):
    """Raised when registering a trigger with name that already exists."""

ValidationError

Bases: ZenMLBaseException

Raised when the Model passed to the ZenStore.

Source code in src/zenml/exceptions.py
163
164
class ValidationError(ZenMLBaseException):
    """Raised when the Model passed to the ZenStore."""

WebhookInactiveError

Bases: ZenMLBaseException

Raised when source is inactive.

Source code in src/zenml/exceptions.py
183
184
class WebhookInactiveError(ZenMLBaseException):
    """Raised when source is inactive."""

ZenKeyError

Bases: KeyError

Specialized key error which allows error messages with line breaks.

Source code in src/zenml/exceptions.py
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
class ZenKeyError(KeyError):
    """Specialized key error which allows error messages with line breaks."""

    def __init__(self, message: str) -> None:
        """Initialization.

        Args:
            message:str, the error message
        """
        self.message = message

    def __str__(self) -> str:
        """String function.

        Returns:
            the error message
        """
        return self.message

__init__(message)

Initialization.

Parameters:

Name Type Description Default
message str

str, the error message

required
Source code in src/zenml/exceptions.py
250
251
252
253
254
255
256
def __init__(self, message: str) -> None:
    """Initialization.

    Args:
        message:str, the error message
    """
    self.message = message

__str__()

String function.

Returns:

Type Description
str

the error message

Source code in src/zenml/exceptions.py
258
259
260
261
262
263
264
def __str__(self) -> str:
    """String function.

    Returns:
        the error message
    """
    return self.message

ZenMLBaseException

Bases: Exception

Base exception for all ZenML Exceptions.

Source code in src/zenml/exceptions.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class ZenMLBaseException(Exception):
    """Base exception for all ZenML Exceptions."""

    def __init__(
        self,
        message: Optional[str] = None,
        url: Optional[str] = None,
    ):
        """The BaseException used to format messages displayed to the user.

        Args:
            message: Message with details of exception. This message
                     will be appended with another message directing user to
                     `url` for more information. If `None`, then default
                     Exception behavior is used.
            url: URL to point to in exception message. If `None`, then no url
                 is appended.
        """
        if message and url:
            message += f" For more information, visit {url}."
        super().__init__(message)

__init__(message=None, url=None)

The BaseException used to format messages displayed to the user.

Parameters:

Name Type Description Default
message Optional[str]

Message with details of exception. This message will be appended with another message directing user to url for more information. If None, then default Exception behavior is used.

None
url Optional[str]

URL to point to in exception message. If None, then no url is appended.

None
Source code in src/zenml/exceptions.py
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def __init__(
    self,
    message: Optional[str] = None,
    url: Optional[str] = None,
):
    """The BaseException used to format messages displayed to the user.

    Args:
        message: Message with details of exception. This message
                 will be appended with another message directing user to
                 `url` for more information. If `None`, then default
                 Exception behavior is used.
        url: URL to point to in exception message. If `None`, then no url
             is appended.
    """
    if message and url:
        message += f" For more information, visit {url}."
    super().__init__(message)