Skip to content

[BUG]: Installer is broken, or missing helpful error message #2542

@sdanielzafar

Description

@sdanielzafar

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

dan.zafar@YFV9607WJY ~ % databricks -v
Databricks CLI v0.225.0
dan.zafar@YFV9607WJY ~ % databricks labs install ucx
09:44:58  INFO [d.l.ucx.install] Installing UCX v0.34.0
Traceback (most recent call last):
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 303, in configure
    config = self.installation.load(WorkspaceConfig)
             ^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/functools.py", line 1001, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 169, in installation
    return self.product_info.current_installation(self.workspace_client)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/wheels.py", line 130, in current_installation
    return Installation.current(ws, self.product_name())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/installation.py", line 86, in current
    user_folder = cls._user_home_installation(ws, product)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/installation.py", line 423, in _user_home_installation
    me = ws.current_user.me()
         ^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/service/iam.py", line 2270, in me
    res = self._api.do('GET', '/api/2.0/preview/scim/v2/Me', headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/core.py", line 155, in do
    response = retryable(self._perform)(method,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/core.py", line 270, in _perform
    error.message = self._cfg.wrap_debug_info(error.message)
                                              ^^^^^^^^^^^^^
AttributeError: 'PermissionDenied' object has no attribute 'message'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 905, in <module>
    workspace_installer.run()
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 184, in run
    config = self.configure(default_config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 312, in configure
    logger.warning(f"Existing installation at {self.installation.install_folder()} is corrupted. Skipping...")
                                               ^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/functools.py", line 1001, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/lib/src/databricks/labs/ucx/install.py", line 169, in installation
    return self.product_info.current_installation(self.workspace_client)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/wheels.py", line 130, in current_installation
    return Installation.current(ws, self.product_name())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/installation.py", line 86, in current
    user_folder = cls._user_home_installation(ws, product)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/labs/blueprint/installation.py", line 423, in _user_home_installation
    me = ws.current_user.me()
         ^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/service/iam.py", line 2270, in me
    res = self._api.do('GET', '/api/2.0/preview/scim/v2/Me', headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/core.py", line 155, in do
    response = retryable(self._perform)(method,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dan.zafar/.databricks/labs/ucx/state/venv/lib/python3.11/site-packages/databricks/sdk/core.py", line 270, in _perform
    error.message = self._cfg.wrap_debug_info(error.message)
                                              ^^^^^^^^^^^^^
AttributeError: 'PermissionDenied' object has no attribute 'message'
Error: installer: exit status 1

Expected Behavior

Should install correctly, if this is a user issue then it should have a helpful error message to help resolve.

Steps To Reproduce

See above code

Cloud

Azure

Operating System

macOS

Version

latest via Databricks CLI

Relevant log output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageupstreamthese issues are caused by upstream dependencies

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions