{"record":{"id":"b853acf4a1d9c88e","repo":"mlflow/mlflow","slug":"invalid-parameter-value-b853ac","errorCode":"INVALID_PARAMETER_VALUE","errorMessage":"Invalid deletion mode '{mode}'. Must be one of: {', '.join(m.value for m in WorkspaceDeletionMode)}","messagePattern":"Invalid deletion mode '(.+?)'\\. Must be one of: (.+?)","errorType":"validation","errorClass":"MlflowException","httpStatus":400,"severity":"error","filePath":"mlflow/tracking/_workspace/fluent.py","lineNumber":144,"sourceCode":"            description=description,\n            default_artifact_root=default_artifact_root,\n            trace_archival_config=trace_archival_config,\n        )\n    )\n\n\n@experimental(version=\"3.10.0\")\ndef delete_workspace(name: str, *, mode: str = WorkspaceDeletionMode.RESTRICT) -> None:\n    \"\"\"Delete an existing workspace.\n\n    Args:\n        name: Name of the workspace to delete.\n        mode: Deletion mode. One of SET_DEFAULT, CASCADE, or RESTRICT.\n    \"\"\"\n    try:\n        deletion_mode = WorkspaceDeletionMode(mode)\n    except ValueError:\n        raise MlflowException.invalid_parameter_value(\n            f\"Invalid deletion mode '{mode}'. \"\n            f\"Must be one of: {', '.join(m.value for m in WorkspaceDeletionMode)}\"\n        )\n    if name != DEFAULT_WORKSPACE_NAME:\n        WorkspaceNameValidator.validate(name)\n    _workspace_client_call(lambda client: client.delete_workspace(name=name, mode=deletion_mode))\n\n\n__all__ = [\n    \"Workspace\",\n    \"set_workspace\",\n    \"list_workspaces\",\n    \"get_workspace\",\n    \"create_workspace\",\n    \"update_workspace\",\n    \"delete_workspace\",\n]\n","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/mlflow/mlflow/blob/6a27f2decc0b76eb1b54af31849784addb357dbc/mlflow/tracking/_workspace/fluent.py#L126-L162","documentation":"delete_workspace validates the mode argument by constructing the WorkspaceDeletionMode enum; an unrecognized value raises ValueError, which MLflow re-raises as INVALID_PARAMETER_VALUE listing the valid modes. Valid values are SET_DEFAULT, CASCADE, and RESTRICT.","triggerScenarios":"Calling delete_workspace(name, mode='delete') or any string not exactly matching an enum member (case-sensitive, e.g. 'cascade' lowercase).","commonSituations":"Typos or lowercase variants of mode names; passing None or a user-supplied config value; switching from another tool's deletion vocabulary (e.g. 'force'/'recursive') to MLflow's modes.","solutions":["Pass one of the exact strings: 'SET_DEFAULT', 'CASCADE', or 'RESTRICT' (case-sensitive).","Import and use the enum: from mlflow.tracking._workspace import WorkspaceDeletionMode; delete_workspace(name, mode=WorkspaceDeletionMode.CASCADE).","Normalize/validate user input to uppercase before passing it.","For RESTRICT, ensure the workspace has no dependent resources, or choose CASCADE to delete them."],"exampleFix":"// before\ndelete_workspace(name='ws', mode='cascade')  # invalid\n// after\nfrom mlflow.tracking._workspace import WorkspaceDeletionMode\ndelete_workspace(name='ws', mode=WorkspaceDeletionMode.CASCADE)","handlingStrategy":"validation","validationCode":"from mlflow.tracking._workspace import WorkspaceDeletionMode\n\ndef validate_deletion_mode(mode: str) -> None:\n    if isinstance(mode, str):\n        mode = mode.upper()\n    allowed = {m.value for m in WorkspaceDeletionMode}\n    if mode not in allowed:\n        raise ValueError(f'mode must be one of {sorted(allowed)}')","typeGuard":"def is_workspace_deletion_mode(mode: object) -> bool:\n    try:\n        WorkspaceDeletionMode(mode)\n        return True\n    except ValueError:\n        return False","tryCatchPattern":"from mlflow.exceptions import MlflowException\ntry:\n    delete_workspace(name='ws', mode=mode)\nexcept MlflowException as e:\n    if e.error_code == 'INVALID_PARAMETER_VALUE':\n        logger.error('Bad deletion mode %r; use SET_DEFAULT, CASCADE, or RESTRICT', mode)\n    else:\n        raise","preventionTips":["Always pass WorkspaceDeletionMode enum members instead of raw strings","Normalize user input with .upper() before conversion","Document allowed mode values at the CLI/config boundary"],"tags":["mlflow","workspace","validation","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"6a27f2decc0b76eb1b54af31849784addb357dbc","analyzedAt":"2026-08-29T20:54:51.419Z","schemaVersion":2},"datasetVersion":"2026-08-29T22:17:34.462Z"}