Billing product list fails on date format returned
维护者通常 1 天内回复
还没有人认领这个 Issue。
- #34094 来自 @a0x1ab —— 已关闭,未合并
评估
调研方向
Reproduce the failure with az billing product list using the account and profile arguments shown, then inspect the deserialization path in azure/mgmt/billing/operations/_products_operations.py and the msrest ISO datetime handling named in the traceback. Done means the command accepts the returned slash-formatted purchase and end dates and lists the products without a deserialization error.
由索引模型根据 Issue 内容生成。
描述
This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az billing product list
Errors:
PS /home/USER> az billing product list --account-name "ACCOUNT_NAME" --profile-name "PROFILE_NAME"
Command group 'billing product' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
The command failed with an unexpected error. Here is the traceback:
('Unable to deserialize response data. Data: [{\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_1\', \'name\': \'PRODUCT_1\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'10/01/2026\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'12/02/2024\', \'quantity\': REDACTED, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}, {\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_2\', \'name\': \'PRODUCT_2\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingFrequency\': \'P1M\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'06/12/2027\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'09/17/2025\', \'quantity\': 999, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}, {\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_3\', \'name\': \'PRODUCT_3\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'10/12/2026\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'10/13/2025\', \'quantity\': 2, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}], [Product], DeserializationError: ("Unable to deserialize response data. Data: 12/02/2024, iso-8601, DeserializationError: (\'Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024\', ValueError(\'Invalid datetime string: 12/02/2024\'))", DeserializationError(\'Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024\', ValueError(\'Invalid datetime string: 12/02/2024\')))', DeserializationError("Unable to deserialize response data. Data: 12/02/2024, iso-8601, DeserializationError: ('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))", DeserializationError('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))))
Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1954, in deserialize_iso
raise ValueError("Invalid datetime string: " + attr)
ValueError: Invalid datetime string: 12/02/2024
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1621, in deserialize_data
data_val = self.deserialize_type[data_type](data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1973, in deserialize_iso
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1954, in deserialize_iso
raise ValueError("Invalid datetime string: " + attr)
azure.core.exceptions.DeserializationError: ('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1626, in deserialize_data
return self.deserialize_type[iter_type](data, data_type[1:-1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1657, in deserialize_iter
return [self.deserialize_data(a, iter_type) for a in attr]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1639, in deserialize_data
return self._deserialize(obj_type, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1450, in _deserialize
value = self.deserialize_data(raw_value, attr_desc['type'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1637, in deserialize_data
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1621, in deserialize_data
data_val = self.deserialize_type[data_type](data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1973, in deserialize_iso
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1954, in deserialize_iso
raise ValueError("Invalid datetime string: " + attr)
azure.core.exceptions.DeserializationError: ("Unable to deserialize response data. Data: 12/02/2024, iso-8601, DeserializationError: ('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))", DeserializationError('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024')))
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 677, in execute
raise ex
File "/usr/lib64/az/lib/python3.12/site-packages/azure/cli/core/commands/__init__.py", line 820, 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 802, in _run_job
result = list(result)
^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/core/paging.py", line 136, in __next__
return next(self._page_iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/core/paging.py", line 90, in __next__
self.continuation_token, self._current_page = self._extract_data(self._response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/azure/mgmt/billing/operations/_products_operations.py", line 265, in extract_data
deserialized = self._deserialize('ProductsListResult', pipeline_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1376, in __call__
return self._deserialize(target_obj, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1450, in _deserialize
value = self.deserialize_data(raw_value, attr_desc['type'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1637, in deserialize_data
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1626, in deserialize_data
return self.deserialize_type[iter_type](data, data_type[1:-1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1657, in deserialize_iter
return [self.deserialize_data(a, iter_type) for a in attr]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1639, in deserialize_data
return self._deserialize(obj_type, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1450, in _deserialize
value = self.deserialize_data(raw_value, attr_desc['type'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1637, in deserialize_data
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1621, in deserialize_data
data_val = self.deserialize_type[data_type](data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1973, in deserialize_iso
raise_with_traceback(DeserializationError, msg, err)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/exceptions.py", line 51, in raise_with_traceback
raise error.with_traceback(exc_traceback)
File "/usr/lib64/az/lib/python3.12/site-packages/msrest/serialization.py", line 1954, in deserialize_iso
raise ValueError("Invalid datetime string: " + attr)
azure.core.exceptions.DeserializationError: ('Unable to deserialize response data. Data: [{\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_1\', \'name\': \'PRODUCT_1\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'10/01/2026\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'12/02/2024\', \'quantity\': 3, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}, {\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_2\', \'name\': \'PRODUCT_2\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingFrequency\': \'P1M\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'06/12/2027\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'09/17/2025\', \'quantity\': 7, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}, {\'id\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/products/PRODUCT_3\', \'name\': \'PRODUCT_3\', \'properties\': {\'autoRenew\': \'On\', \'availabilityId\': \'REDACTED\', \'billingProfileId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME\', \'billingProfileDisplayName\': \'Direct\', \'endDate\': \'10/12/2026\', \'invoiceSectionId\': \'/providers/Microsoft.Billing/billingAccounts/ACCOUNT_NAME/billingProfiles/PROFILE_NAME/invoiceSections/INVOICE_SECTION\', \'invoiceSectionDisplayName\': \'DISPLAY_NAME\', \'productType\': \'PRODUCTPRODUCT\', \'productTypeId\': \'REDACTED\', \'skuId\': \'0001\', \'skuDescription\': \'PRODUCTPRODUCT\', \'purchaseDate\': \'10/13/2025\', \'quantity\': 2, \'status\': \'AutoRenew\', \'tenantId\': \'TENANT_ID\'}, \'type\': \'Microsoft.Billing/billingAccounts/products\'}], [Product], DeserializationError: ("Unable to deserialize response data. Data: 12/02/2024, iso-8601, DeserializationError: (\'Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024\', ValueError(\'Invalid datetime string: 12/02/2024\'))", DeserializationError(\'Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024\', ValueError(\'Invalid datetime string: 12/02/2024\')))', DeserializationError("Unable to deserialize response data. Data: 12/02/2024, iso-8601, DeserializationError: ('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))", DeserializationError('Cannot deserialize datetime object., ValueError: Invalid datetime string: 12/02/2024', ValueError('Invalid datetime string: 12/02/2024'))))
To check existing issues, please visit: https://github.com/Azure/azure-cli/issues
To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.
az billing product list --account-name {} --profile-name {}
Expected Behavior
List all the products under the billing account and profile
Environment Summary
Linux-6.1.158.2-microsoft-standard-x86_64-with-glibc2.38 (Cloud Shell), Microsoft Azure Linux 3.0
Python 3.12.14
Installer: RPM
azure-cli 2.90.0
Extensions:
ml 2.44.1
ssh 2.0.9
Dependencies:
msal 1.36.0
azure-mgmt-resource 24.0.0
Additional Context
- 主要语言
- Python
- 星标
- 4.7k
- 派生
- 3.5k
- 平均合并
- 4 天 14 小时
- 30 天内合并 PR
- 92
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Azure/azure-cli 的其他 Issue
-
customer-reported MySQL needs-triage Service Attention
难度 1/5 1 小时以内 新手友好度 70/100
Azure/azure-cli#34393 · 5 条评论 ·
维护者通常 1 天内回复
-
customer-reported Service Attention
难度 1/5 1 小时以内 新手友好度 72/100
Azure/azure-cli#34267 · 1 条评论 ·
维护者通常 1 天内回复
-
Add support for cli completion in git bash for windows可能已有人在做 @a0x1ab 于 23 天前认领。 未关闭customer-reported Service Attention
难度 2/5 1-3 小时 新手友好度 68/100
Azure/azure-cli#34150 · 4 条评论 ·
维护者通常 1 天内回复
-
act-observability-squad Auto-Assign ContainerApp Output Service Attention
难度 2/5 1-3 小时 新手友好度 72/100
Azure/azure-cli#33149 · 5 条评论 ·
维护者通常 1 天内回复
-
act-codegen-extensibility-squad Auto-Assign Documentation MySQL Possible-Solution Service Attention Similar-Issue
难度 1/5 1 小时以内 新手友好度 85/100
Azure/azure-cli#33009 · 5 条评论 ·
维护者通常 1 天内回复
相似的 Issue
-
Unknown stop ID in slow zone data crashes post formatting and skips the rest of that day's posts未关闭backend bug tm-new-volunteer
难度 2/5 1-3 小时 新手友好度 84/100
transitmatters/mbta-slow-zone-bot#81 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 64/100
spacetelescope/rdmt-spire#49 ·
维护者通常 1 天内回复
-
AI bug
难度 2/5 1-3 小时 新手友好度 68/100
AUTO-MAS-Project/AUTO-MAS#1960 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
btclib-org/btclib-wallet#872 ·
维护者通常 1 天内回复