diff --git a/src/azure-cli-core/azure/cli/core/util.py b/src/azure-cli-core/azure/cli/core/util.py index 4b608b077b4..c025761d669 100644 --- a/src/azure-cli-core/azure/cli/core/util.py +++ b/src/azure-cli-core/azure/cli/core/util.py @@ -61,6 +61,7 @@ def handle_exception(ex): # pylint: disable=too-many-locals, too-many-statement from azure.core.exceptions import AzureError from requests.exceptions import SSLError, HTTPError from azure.cli.core import azclierror + from msal_extensions.persistence import PersistenceError import traceback logger.debug("azure.cli.core.util.handle_exception is called with an exception:") @@ -136,6 +137,19 @@ def handle_exception(ex): # pylint: disable=too-many-locals, too-many-statement error_msg = 'Keyboard interrupt is captured.' az_error = azclierror.ManualInterrupt(error_msg) + elif isinstance(ex, PersistenceError): + # errno is already in strerror. str(ex) gives duplicated errno. + az_error = azclierror.CLIInternalError(ex.strerror) + if ex.errno == 0: + az_error.set_recommendation( + "Please report to us via Github: https://github.com/Azure/azure-cli/issues/20278") + elif ex.errno == -2146893813: + az_error.set_recommendation( + "Please report to us via Github: https://github.com/Azure/azure-cli/issues/20231") + elif ex.errno == -2146892987: + az_error.set_recommendation( + "Please report to us via Github: https://github.com/Azure/azure-cli/issues/21010") + else: error_msg = "The command failed with an unexpected error. Here is the traceback:" az_error = azclierror.CLIInternalError(error_msg) diff --git a/src/azure-cli-core/setup.py b/src/azure-cli-core/setup.py index 75f88539069..84c270ac135 100644 --- a/src/azure-cli-core/setup.py +++ b/src/azure-cli-core/setup.py @@ -51,7 +51,7 @@ 'humanfriendly~=10.0', 'jmespath', 'knack~=0.9.0', - 'msal-extensions>=0.3.1,<0.4', + 'msal-extensions~=1.0.0', 'msal>=1.17.0,<2.0.0', 'msrestazure~=0.6.4', 'packaging>=20.9,<22.0', diff --git a/src/azure-cli/requirements.py3.Darwin.txt b/src/azure-cli/requirements.py3.Darwin.txt index ec63f0c5177..911af028ef4 100644 --- a/src/azure-cli/requirements.py3.Darwin.txt +++ b/src/azure-cli/requirements.py3.Darwin.txt @@ -109,7 +109,7 @@ jmespath==0.9.5 jsondiff==1.3.0 knack==0.9.0 MarkupSafe==1.1.1 -msal-extensions==0.3.1 +msal-extensions==1.0.0 msal==1.17.0 msrest==0.6.21 msrestazure==0.6.4 diff --git a/src/azure-cli/requirements.py3.Linux.txt b/src/azure-cli/requirements.py3.Linux.txt index e3130369896..6e4ec505bd4 100644 --- a/src/azure-cli/requirements.py3.Linux.txt +++ b/src/azure-cli/requirements.py3.Linux.txt @@ -110,7 +110,7 @@ jmespath==0.9.5 jsondiff==1.3.0 knack==0.9.0 MarkupSafe==1.1.1 -msal-extensions==0.3.1 +msal-extensions==1.0.0 msal==1.17.0 msrest==0.6.21 msrestazure==0.6.4 diff --git a/src/azure-cli/requirements.py3.windows.txt b/src/azure-cli/requirements.py3.windows.txt index 9102ff5ccfa..fecb395c731 100644 --- a/src/azure-cli/requirements.py3.windows.txt +++ b/src/azure-cli/requirements.py3.windows.txt @@ -109,7 +109,7 @@ jmespath==0.9.5 jsondiff==1.3.0 knack==0.9.0 MarkupSafe==1.1.1 -msal-extensions==0.3.1 +msal-extensions==1.0.0 msal==1.17.0 msrest==0.6.21 msrestazure==0.6.4