az keyvault certificate pending: error when pending certificate exists: 'NoneType' object has no attribute 'code'
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 3.5k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 64
Description
### Describe the bug
When a key vault certificate is stuck in a pending state, or there's a problem renewing the certificate, the pending certificate can be managed with the `az keyvault certificate pending` set of commands. For the `show` and `delete` subcommands, the error `'NoneType' object has no attribute 'code'` when parsing the API response.
### Related command
`az keyvault certificate pending show --vault-name VAULT_NAME --name CERT_NAME `
### Errors
`'NoneType' object has no attribute 'code'` when parsing the API response.
### Issue script & Debug output
```log
cli.azure.cli.core.sdk.policies: Request URL: 'https://******.vault.azure.net/certificates/****/pending?api-version=7.4'
cli.azure.cli.core.sdk.policies: Request method: 'DELETE'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': '******'
cli.azure.cli.core.sdk.policies: 'CommandName': 'keyvault certificate pending delete'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--vault-name --name --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.74.0 (RPM) azsdk-python-core/1.31.0 Python/3.12.9 (Linux-6.1.124.1-microsoft-standard-x86_64-with-glibc2.38) cloud-shell/1.0'
cli.azure.cli.core.sdk.policies: 'Authorization': '*****'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: This request has no body
urllib3.connectionpool: https://******.vault.azure.net:443 "DELETE /certificates/****/pending?api-version=7.4 HTTP/1.1" 200 2209
cli.azure.cli.core.sdk.policies: Response status: 200
cli.azure.cli.core.sdk.policies: Response headers:
cli.azure.cli.core.sdk.policies: 'Cache-Control': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Pragma': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json; charset=utf-8'
cli.azure.cli.core.sdk.policies: 'Expires': '-1'
cli.azure.cli.core.sdk.policies: 'x-ms-keyvault-region': 'westus2'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': '******'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': '******'
cli.azure.cli.core.sdk.policies: 'x-ms-keyvault-service-version': '1.9.2497.1'
cli.azure.cli.core.sdk.policies: 'x-ms-keyvault-network-info': 'conn_type=Ipv4;addr=******;act_addr_fam=InterNetwork;'
cli.azure.cli.core.sdk.policies: 'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000;includeSubDomains'
cli.azure.cli.core.sdk.policies: 'Date': 'Fri, 04 Jul 2025 00:29:55 GMT'
cli.azure.cli.core.sdk.policies: 'Content-Length': '2209'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"id":"https://******.vault.azure.net/certificates/****/pending","issuer":{"name":"****"},"csr":"******","cancellation_requested":false,"status":"failed","status_details":"Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.","error":{"code":"Request rejected","message":"**** rejected the request to create a certificate. Please check your configuration and try again.\nCertificateUrl: , HttpStatus: BadRequest, Correlation ID: ******. ErrorDetails: An attempt to create a certificate with **** failed with error Code 'ValidationError' having inner error Code 'InvalidField' and Message 'Certificate issuance is not allowed for the tenant ****** for the domain ******. The tenant's environment does not match the domain's environment.'. For help with any issues, visit ****.\n"},"request_id":"******"}
cli.azure.cli.core.azclierror: Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/command_modules/keyvault/_command_type.py", line 109, in keyvault_command_handler
result = op(**command_args)
^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/core/tracing/decorator.py", line 94, in wrapper_use_tracer
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/keyvault/certificates/_client.py", line 782, in delete_certificate_operation
return CertificateOperation._from_certificate_operation_bundle(certificate_operation_bundle=bundle)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/keyvault/certificates/_models.py", line 492, in _from_certificate_operation_bundle
error=(CertificateOperationError._from_error_bundle(certificate_operation_bundle.error) # pylint: disable=protected-access
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/keyvault/certificates/_models.py", line 112, in _from_error_bundle
inner_error=cls._from_error_bundle(error_bundle.inner_error) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/keyvault/certificates/_models.py", line 110, in _from_error_bundle
code=error_bundle.code, # type: ignore
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'code'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.12/site-packages/knack/cli.py", line 233, in invoke
cmd_result = self.invocation.execute(args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/core/commands/__init__.py", line 666, in execute
raise ex
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/core/commands/__init__.py", line 734, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/core/commands/__init__.py", line 703, in _run_job
result = cmd_copy(params)
^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
return self.handler(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/command_modules/keyvault/_command_type.py", line 135, in keyvault_command_handler
return keyvault_exception_handler(ex)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/command_modules/keyvault/_command_type.py", line 49, in keyvault_exception_handler
raise CLIError(ex)
knack.util.CLIError: 'NoneType' object has no attribute 'code'
```
### Expected behavior
The API response should be processed and output as per `--output`.
### Environment Summary
azure-cli 2.74.0 *
core 2.74.0 *
telemetry 1.1.0
Extensions:
ml 2.37.1
ssh 2.0.6
Dependencies:
msal 1.32.3
azure-mgmt-resource 23.3.0
Python location '/usr/bin/python3.12'
Config directory '/home/****/.azure'
Extensions directory '/home/****/.azure/cliextensions'
Extensions system directory '/usr/lib/python3.12/site-packages/azure-cli-extensions'
Python (Linux) 3.12.9 (main, Mar 11 2025, 15:30:57) [GCC 13.2.0]
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.