Azure / azure-devops-cli-extension

Azure DevOps Extension for Azure CLI
https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/?view=azure-cli-latest
MIT License
633 stars 243 forks source link

Correctly return project information created when executing az devops project create command #1352

Open kaito-ms opened 1 year ago

kaito-ms commented 1 year ago

The expected behavior of the az devops project create command is to return project information. However, the az devops project create command sporadically returns a VS800075 error. Even when VS800075 is returned, the project is created normally.

VS800075: The project with id 'vstfs:///Classification/TeamProject/' does not exist, or you do not have permission to access it.

We believe this is because the REST API for project creation running inside the az devops project create command immediately returns a Status code 202. https://github.com/Azure/azure-devops-cli-extension/blob/7fc9bfc19c61876ebf7e12eb23f55b38d2bdc78e/azure-devops/azext_devops/dev/team/project.py#L75

When status code 202 is returned, project creation is in progress, and if you try to get project information in this state, status code 404 error will be returned, and then VS800075 will occur. https://github.com/Azure/azure-devops-cli-extension/blob/7fc9bfc19c61876ebf7e12eb23f55b38d2bdc78e/azure-devops/azext_devops/dev/team/project.py#L83

[Debug logs]

azext_devops.devops_sdk.client: POST https://dev.azure.com/<orgname>/_apis/projects
urllib3.connectionpool: https://dev.azure.com:443 "POST /<orgname>/_apis/projects HTTP/1.1" 202 171

// VS800075 occurs.
urllib3.connectionpool: https://dev.azure.com:443 "GET /<orgname>/_apis/projects/<projectname>?includeCapabilities=true HTTP/1.1" 404 397
// VS800075 does not occur. (Expected behavior)
urllib3.connectionpool: https://dev.azure.com:443 "GET /<orgname>/_apis/projects/<projectname>?includeCapabilities=true HTTP/1.1" 200 728
odegroot commented 7 months ago

I am also running into this. I consider this a bug, not a feature - when the project creation succeeds, then the command should not return an error.

I am thinking this might be a permissions race condition. I personally have access to all projects, but the Build Service does not. As part of the project creation, the Build Service becomes admin of the project, but perhaps the "get project details" request gets sent before admin privileges are rolled out.

$env:SYSTEM_ACCESSTOKEN | az devops login --only-show-errors
az devops project list --query "value[?name == 'odg-test4']"
az devops project create --name odg-test4 --description 'asdasd sdfsdfg' --verbose --debug
DEBUG: cli.knack.cli: Command arguments: ['devops', 'project', 'create', '--name', 'odg-test4', '--description', 'asdasd sdfsdfg', '--verbose', '--debug']
DEBUG: cli.knack.cli: __init__ debug log:
Cannot enable color.
DEBUG: cli.knack.cli: Event: Cli.PreExecute []
DEBUG: cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x7fdfcb0740e0>, <function OutputProducer.on_global_arguments at 0x7fdfcb01a200>, <function CLIQuery.on_global_arguments at 0x7fdfcb053ce0>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
DEBUG: cli.azure.cli.core: Modules found from index for 'devops': ['azext_devops']
DEBUG: cli.azure.cli.core: Loading command modules:
DEBUG: cli.azure.cli.core: Name                  Load Time    Groups  Commands
DEBUG: cli.azure.cli.core: Total (0)                 0.000         0         0
DEBUG: cli.azure.cli.core: These extensions are not installed and will be skipped: ['azext_ai_examples', 'azext_next']
DEBUG: cli.azure.cli.core: Loading extensions:
DEBUG: cli.azure.cli.core: Name                  Load Time    Groups  Commands  Directory
DEBUG: cli.azure.cli.core: azure-devops              0.057        60       192  /opt/az/azcliextensions/azure-devops
DEBUG: cli.azure.cli.core: Total (1)                 0.057        60       192  
DEBUG: cli.azure.cli.core: Loaded 60 groups, 192 commands.
DEBUG: cli.azure.cli.core: Found a match in the command table.
DEBUG: cli.azure.cli.core: Raw command  : devops project create
DEBUG: cli.azure.cli.core: Command table: devops project create
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x7fdfc9f31d00>]
DEBUG: cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/vsts/.azure/commands/2024-04-04.09-09-14.devops_project_create.1729.log'.
INFO: az_command_data_logger: command args: devops project create --name {} --description {} --verbose --debug
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument.<locals>.add_subscription_parameter at 0x7fdfc9f72de0>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument.<locals>.add_ids_arguments at 0x7fdfc9f96020>, <function register_cache_arguments.<locals>.add_cache_arguments at 0x7fdfc9f96160>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x7fdfcb01a2a0>, <function CLIQuery.handle_query_parameter at 0x7fdfcb053d80>, <function register_ids_argument.<locals>.parse_ids_arguments at 0x7fdfc9f960c0>, <function DevCommandsLoader.post_parse_args at 0x7fdfc9fd8a40>]
INFO: az_command_data_logger: extension name: azure-devops
INFO: az_command_data_logger: extension version: 1.0.0
DEBUG: cli.azext_devops.dev.common.vsts_git_url_info: Remote url: https://myorg@dev.azure.com/myorg/myproject/_git/myproject
DEBUG: azext_devops.devops_sdk._file_cache: Loading cache file: /home/vsts/.azure/azuredevops/cache/remotes.json
DEBUG: azext_devops.devops_sdk._file_cache: attempting to read file /home/vsts/.azure/azuredevops/cache/remotes.json as utf-8-sig
INFO: cli.azext_devops.dev.common.services: Detect: Url discovery took 0:00:00.002879
DEBUG: cli.azext_devops.dev.common._credentials: Getting credential: azdevops-cli:https://dev.azure.com/myorg
INFO: keyring.backend: Loading KWallet
INFO: keyring.backend: Loading SecretService
INFO: keyring.backend: Loading Windows
INFO: keyring.backend: Loading chainer
INFO: keyring.backend: Loading macOS
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring backend : keyring.backends.fail.Keyring (priority: 0)
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring not configured properly or package not found.Looking for credentials with key:azdevops-cli:https://dev.azure.com/myorg in the file: /home/vsts/.azure/azuredevops/personalAccessTokens
DEBUG: cli.azext_devops.dev.common._credentials: Getting credential: azdevops-cli: default
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring backend : keyring.backends.fail.Keyring (priority: 0)
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring not configured properly or package not found.Looking for credentials with key:azdevops-cli: default in the file: /home/vsts/.azure/azuredevops/personalAccessTokens
DEBUG: cli.azext_devops.dev.common.services: PAT is present which can be used against this instance
DEBUG: cli.azure.cli.core: Current cloud config:
AzureCloud
DEBUG: cli.azext_devops.dev.common.services: az login is not present
DEBUG: cli.azext_devops.dev.common.services: There are no active accounts.
Traceback (most recent call last):
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/_profile.py", line 537, in get_current_account_user
    active_account = self.get_subscription()
                     ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/_profile.py", line 546, in get_subscription
    raise CLIError(_AZ_LOGIN_MESSAGE)
knack.util.CLIError: Please run 'az login' to setup account.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/az/azcliextensions/azure-devops/azext_devops/dev/common/services.py", line 61, in _get_credentials
    token_from_az_login = get_token_from_az_logins(organization, pat_token_present)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/dev/common/services.py", line 118, in get_token_from_az_logins
    dummy_user = profile.get_current_account_user()     # noqa: F841
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/_profile.py", line 539, in get_current_account_user
    raise CLIError('There are no active accounts.')
knack.util.CLIError: There are no active accounts.
DEBUG: cli.azext_devops.dev.common._credentials: Getting credential: azdevops-cli:https://dev.azure.com/myorg
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring backend : keyring.backends.fail.Keyring (priority: 0)
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring not configured properly or package not found.Looking for credentials with key:azdevops-cli:https://dev.azure.com/myorg in the file: /home/vsts/.azure/azuredevops/personalAccessTokens
DEBUG: cli.azext_devops.dev.common._credentials: Getting credential: azdevops-cli: default
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring backend : keyring.backends.fail.Keyring (priority: 0)
DEBUG: cli.azext_devops.dev.common.credential_store: Keyring not configured properly or package not found.Looking for credentials with key:azdevops-cli: default in the file: /home/vsts/.azure/azuredevops/personalAccessTokens
INFO: cli.azext_devops.dev.common.services: Creating connection with personal access token.
DEBUG: msrest.universal_http.requests: Configuring retry: max_retries=3, backoff_factor=0.8, max_backoff=90
DEBUG: cli.azext_devops.dev.common.telemetry: Azure devops telemetry enabled.
DEBUG: cli.azext_devops.dev.common.telemetry: Logging telemetry to azure devops server.
DEBUG: msrest.universal_http.requests: Configuring retry: max_retries=3, backoff_factor=0.8, max_backoff=90
DEBUG: msrest.universal_http.requests: Configuring retry: max_retries=3, backoff_factor=0.8, max_backoff=90
DEBUG: azext_devops.devops_sdk._file_cache: Loading cache file: /home/vsts/.azure-devops/python-sdk/cache/resources.json
DEBUG: azext_devops.devops_sdk._file_cache: attempting to read file /home/vsts/.azure-devops/python-sdk/cache/resources.json as utf-8-sig
DEBUG: azext_devops.devops_sdk.connection: File cache hit for resources on: https://dev.azure.com/myorg
DEBUG: azext_devops.devops_sdk._file_cache: Loading cache file: /home/vsts/.azure-devops/python-sdk/cache/options.json
DEBUG: msrest.universal_http.requests: Configuring retry: max_retries=3, backoff_factor=0.8, max_backoff=90
DEBUG: azext_devops.devops_sdk._file_cache: attempting to read file /home/vsts/.azure-devops/python-sdk/cache/options.json as utf-8-sig
DEBUG: azext_devops.devops_sdk.client: File cache hit for options on: https://dev.azure.com/myorg
DEBUG: azext_devops.devops_sdk._file_cache: Loading cache file: /home/vsts/.azure-devops/python-sdk/cache/options.json
DEBUG: azext_devops.devops_sdk._file_cache: attempting to read file /home/vsts/.azure-devops/python-sdk/cache/options.json as utf-8-sig
DEBUG: azext_devops.devops_sdk.client: File cache hit for options on: https://dev.azure.com/myorg
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{area}/{resource}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0-preview.1'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/process/{resource}/{*processId}
DEBUG: azext_devops.devops_sdk.client: POST https://dev.azure.com/myorg/_apis/CustomerIntelligence/Events
DEBUG: azext_devops.devops_sdk.client: Request content: [{'area': 'AzureDevopsCli', 'feature': 'devops', 'properties': {'Command': 'project create', 'Args': 'name source_control description visibility', 'ShellType': None, 'IsInteractive': 'False', 'OutputType': 'json', 'OrgPresentInCommand': False, 'ProjectPresentInCommand': False, 'RepoPresentInCommand': False, 'OrgPickedFromGit': True, 'ProjectPickedFromGit': True, 'RepoPickedFromGit': True, 'OrgIgnoredFromConfig': True, 'ProjectIgnoredFromConfig': True}}]
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/process/processes
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: Starting new HTTPS connection (1): dev.azure.com:443
DEBUG: urllib3.connectionpool: Starting new HTTPS connection (1): dev.azure.com:443
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/process/processes HTTP/1.1" 200 674
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"count":4,"value":[{"id":"b8a3a935-7e91-48b8-a94c-606d37c3e9f2","description":"This template is flexible for any process and great for teams getting started with Azure DevOps.","isDefault":true,"type":"system","url":"https://dev.azure.com/myorg/_apis/process/processes/b8a3a935-7e91-48b8-a94c-606d37c3e9f2","name":"Basic"},{"id":"6b724908-ef14-45cf-84f8-768b5384da45","description":"This template is for teams who follow the Scrum framework.","isDefault":false,"type":"system","url":"https://dev.azure.com/myorg/_apis/process/processes/6b724908-ef14-45cf-84f8-768b5384da45","name":"Scrum"},{"id":"adcc42ab-9882-485e-a3ed-7678f01f66bc","description":"This template is flexible and will work great for most teams using Agile planning methods, including those practicing Scrum.","isDefault":false,"type":"system","url":"https://dev.azure.com/myorg/_apis/process/processes/adcc42ab-9882-485e-a3ed-7678f01f66bc","name":"Agile"},{"id":"27450541-8e31-4150-9947-dc59f998fc01","description":"This template is for more formal projects requiring a framework for process improvement and an auditable record of decisions.","isDefault":false,"type":"system","url":"https://dev.azure.com/myorg/_apis/process/processes/27450541-8e31-4150-9947-dc59f998fc01","name":"CMMI"}]}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{*projectId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: POST https://dev.azure.com/myorg/_apis/projects
DEBUG: azext_devops.devops_sdk.client: Request content: {'description': 'asdasd sdfsdfg', 'name': 'odg-test4', 'visibility': 'private', 'capabilities': {'versioncontrol': {'sourceControlType': 'git'}, 'processTemplate': {'templateTypeId': 'b8a3a935-7e91-48b8-a94c-606d37c3e9f2'}}}
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "POST /myorg/_apis/CustomerIntelligence/Events HTTP/1.1" 204 0
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "POST /myorg/_apis/projects HTTP/1.1" 202 156
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"notSet","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}'
DEBUG: msrest.universal_http.requests: Configuring retry: max_retries=3, backoff_factor=0.8, max_backoff=90
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{operationId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: Starting new HTTPS connection (1): dev.azure.com:443
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e HTTP/1.1" 200 259
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"inProgress","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e","_links":{"self":{"href":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}}}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{operationId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e HTTP/1.1" 200 259
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"inProgress","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e","_links":{"self":{"href":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}}}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{operationId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e HTTP/1.1" 200 259
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"inProgress","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e","_links":{"self":{"href":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}}}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{operationId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e HTTP/1.1" 200 259
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"inProgress","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e","_links":{"self":{"href":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}}}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{operationId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e HTTP/1.1" 200 258
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"id":"01f4eb74-17e5-4845-b11f-5057d5da782e","status":"succeeded","url":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e","_links":{"self":{"href":"https://dev.azure.com/myorg/_apis/operations/01f4eb74-17e5-4845-b11f-5057d5da782e"}}}'
DEBUG: azext_devops.devops_sdk.client: Route template: _apis/{resource}/{*projectId}
DEBUG: azext_devops.devops_sdk.client: Api version '5.0'
DEBUG: azext_devops.devops_sdk.client: GET https://dev.azure.com/myorg/_apis/projects/odg-test4?includeCapabilities=true
DEBUG: azext_devops.devops_sdk.client: Request content: None
DEBUG: msrest.universal_http: Configuring redirects: allow=True, max=30
DEBUG: msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
DEBUG: msrest.universal_http: Configuring proxies: ''
DEBUG: msrest.universal_http: Evaluate proxies against ENV settings: True
DEBUG: urllib3.connectionpool: https://dev.azure.com:443 "GET /myorg/_apis/projects/odg-test4?includeCapabilities=true HTTP/1.1" 404 397
DEBUG: azext_devops.devops_sdk.client: Response content: b'{"$id":"1","innerException":null,"message":"VS800075: The project with id \'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24\' does not exist, or you do not have permission to access it.","typeName":"Microsoft.TeamFoundation.Core.WebApi.ProjectDoesNotExistException, Microsoft.TeamFoundation.Core.WebApi","typeKey":"ProjectDoesNotExistException","errorCode":0,"eventId":3000}'
DEBUG: msrest.exceptions: VS800075: The project with id 'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24' does not exist, or you do not have permission to access it.
DEBUG: cli.azext_devops.dev.common.exception_handler: handling vsts service error
DEBUG: cli.azure.cli.core.azclierror: Traceback (most recent call last):
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/__init__.py", line 701, in _run_job
    result = cmd_copy(params)
             ^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/__init__.py", line 334, in __call__
    return self.handler(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
           ^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/dev/team/project.py", line 83, in create_project
    team_project = core_client.get_project(project_id=name, include_capabilities=True)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/devops_sdk/v5_0/core/core_client.py", line 121, in get_project
    response = self._send(http_method='GET',
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/devops_sdk/client.py", line 90, in _send
    response = self._send_request(request=request, headers=headers, content=content, media_type=media_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/devops_sdk/client.py", line 54, in _send_request
    self._handle_error(request, response)
  File "/opt/az/azcliextensions/azure-devops/azext_devops/devops_sdk/client.py", line 233, in _handle_error
    raise AzureDevOpsServiceError(wrapped_exception)
azext_devops.devops_sdk.exceptions.AzureDevOpsServiceError: VS800075: The project with id 'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24' does not exist, or you do not have permission to access it.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/az/lib/python3.11/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/__init__.py", line 664, in execute
    raise ex
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/__init__.py", line 731, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.11/site-packages/azure/cli/core/commands/__init__.py", line 723, in _run_job
    return cmd_copy.exception_handler(ex)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/azcliextensions/azure-devops/azext_devops/dev/common/exception_handler.py", line 18, in azure_devops_exception_handler
    raise CLIError(ex)
knack.util.CLIError: VS800075: The project with id 'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24' does not exist, or you do not have permission to access it.

ERROR: cli.azure.cli.core.azclierror: VS800075: The project with id 'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24' does not exist, or you do not have permission to access it.
ERROR: az_command_data_logger: VS800075: The project with id 'vstfs:///Classification/TeamProject/6ba8e262-acc8-42f3-a50b-528cc27c1e24' does not exist, or you do not have permission to access it.
DEBUG: cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x7fdfc9f31f80>]
INFO: az_command_data_logger: exit code: 1
INFO: cli.__main__: Command ran in 5.220 seconds (init: 0.181, invoke: 5.038)
INFO: telemetry.main: Begin splitting cli events and extra events, total events: 1
INFO: telemetry.client: Accumulated 0 events. Flush the clients.
INFO: telemetry.main: Finish splitting cli events and extra events, cli events: 1
INFO: telemetry.save: Save telemetry record of length 3794 in cache
INFO: telemetry.main: Begin creating telemetry upload process.
INFO: telemetry.process: Creating upload process: "/opt/az/bin/python3 /opt/az/lib/python3.11/site-packages/azure/cli/telemetry/__init__.py /home/vsts/.azure"
INFO: telemetry.process: Return from creating process
INFO: telemetry.main: Finish creating telemetry upload process.