Skip to content

[WIP] Copilot Request - #33577

Closed
Azure CLI Bot (azclibot) with Copilot wants to merge 1 commit into
devfrom
copilot/fix-6844498-51040886-713b3c8f-1806-48a6-8dad-6c665ae16ce6
Closed

Azure CLI Bot (azclibot) with Copilot wants to merge 1 commit into
devfrom
copilot/fix-6844498-51040886-713b3c8f-1806-48a6-8dad-6c665ae16ce6

Conversation

Copilot AI commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.


This section details on the original issue you should resolve

<issue_title>az functionapp function keys list broken in 2.87.0</issue_title>
<issue_description>### Describe the bug

The command az functionapp function keys list does not parse the returned data correctly. The keys are retrieved as intended but the output is null. This was working in version 2.86.0.

Debug log:
cli.knack.cli: Command arguments: ['functionapp', 'function', 'keys', 'list', '--resource-group', 'rg-csi022-BankInformation-test', '--name', 'fa-csi022-hrplus-bankexport-test', '--function-name', 'TransformBank10', '--debug']
cli.knack.cli: init debug log:
Enable color in terminal.
cli.knack.cli: Event: Cli.PreExecute []
cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x000001F5B16A9D00>, <function OutputProducer.on_global_arguments at 0x000001F5B1841DA0>, <function CLIQuery.on_global_arguments at 0x000001F5B188FE20>]
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Using packaged command index for profile 'latest'.
cli.azure.cli.core: Modules found from index for 'functionapp': ['azure.cli.command_modules.appservice', 'azure.cli.command_modules.serviceconnector']
cli.azure.cli.core: Loading command modules...
cli.azure.cli.core: Loaded command modules in parallel:
cli.azure.cli.core: Name Load Time Groups Commands
cli.azure.cli.core: serviceconnector 0.095 20 331
cli.azure.cli.core: appservice 0.137 91 303
cli.azure.cli.core: Total (2) 0.142 111 634
cli.azure.cli.core: Loaded 109 groups, 634 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : functionapp function keys list
cli.azure.cli.core: Command table: functionapp function keys list
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x000001F5B1EB34C0>]
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to 'C:\Users\acp79.azure\commands\2026-06-09.10-08-29.functionapp_function_keys_list.47568.log'.
az_command_data_logger: command args: functionapp function keys list --resource-group {} --name {} --function-name {} --debug
cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument..add_subscription_parameter at 0x000001F5B1F0C540>]
cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument..add_ids_arguments at 0x000001F5B1F0CB80>, <function register_global_policy_argument..add_global_policy_argument at 0x000001F5B1F0CCC0>, <function register_cache_arguments..add_cache_arguments at 0x000001F5B1F0CD60>, <function register_upcoming_breaking_change_info..update_breaking_change_info at 0x000001F5B1F0CE00>]
cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x000001F5B1841E40>, <function CLIQuery.handle_query_parameter at 0x000001F5B188FEC0>, <function register_ids_argument..parse_ids_arguments at 0x000001F5B1F0CC20>]
cli.azure.cli.core.commands.client_factory: Getting management service client client_type=WebSiteManagementClient
cli.azure.cli.core.auth.persistence: build_persistence: location='C:\Users\acp79\.azure\msal_token_cache.bin', encrypt=True
cli.azure.cli.core.auth.binary_cache: load: C:\Users\acp79.azure\msal_http_cache.bin
urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
msal.application: Broker enabled? True
cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token_info: scopes=('https://management.core.windows.net//.default',), options={}
cli.azure.cli.core.auth.msal_credentials: UserCredential.acquire_token: scopes=['https://management.core.windows.net//.default'], claims_challenge=None, kwargs={}
msal.application: Cache hit an AT
msal.telemetry: Generate or reuse correlation_id: 348b5e84-1798-4af5-9ce7-449186d780a7
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/a012dae1-f549-4616-ba99-5453b40bd3e9/resourceGroups/rg-csi022-BankInformation-test/providers/Microsoft.Web/sites/fa-csi022-hrplus-bankexport-test/functions/TransformBank10/listkeys?api-version=2025-05-01'
cli.azure.cli.core.sdk.policies: Request method: 'POST'
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': '666a2b9c-63da-11f1-a60a-c0a810f4a203'
cli.azure.cli.core.sdk.policies: 'CommandName': 'functionapp function keys list'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --name --function-name --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.87.0 (MSI) azsdk-python-core/1.39.0 Python/3.13.13 (Windows-11-10.0.26200-SP0)'
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: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com:443 "POST /subscriptions/a012dae1-f549-4616-ba99-5453b40bd3e9/resourceGroups/rg-csi022-BankInformation-test/providers/Microsoft.Web/sites/fa-csi022-hrplus-bankexport-test/functions/TransformBank10/listkeys?api-version=2025-05-01 HTTP/1.1" 200 70
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-Length': '70'
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Expires': '-1'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': '493a3737-cb2e-438d-84f2-a92b4bf1aa9e'
cli.azure.cli.core.sdk.policies: 'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.sdk.policies: 'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.sdk.policies: 'x-ms-operation-identifier': 'tenantId=193743c3-6876-4c23-8fad-238f9423fe00,objectId=a592fdb0-fea4-4ea4-b66d-4860c062dca1/norwayeast/0f13dd39-a483-42bd-9239-3b380c3d7767'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-writes': '199'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-global-writes': '2999'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': '55d73f24-1b32-43ee-9059-ae12f4936800'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'NORWAYEAST:20260609T080830Z:55d73f24-1b32-43ee-9059-ae12f4936800'
cli.azure.cli.core.sdk.policies: 'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies: 'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies: 'X-MSEdge-Ref': 'Ref A: 4A15531A6FBF4D41AEC0668BD9C4BF5C Ref B: GVX011092611060 Ref C: 2026-06-09T08:08:30Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 09 Jun 2026 08:08:30 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"default":"V1ItTmKlNRr2MTqSQ-dZR4P-o3wEptKRlsxHSEn5MQYKAxFurAe17w=="}
cli.knack.cli: Event: CommandInvoker.OnTransformResult [<function _resource_group_transform at 0x000001F5B1F0C900>, <function x509_from_base64_to_hex_transform at 0x000001F5B1F0C9A0>]
cli.knack.cli: Event: CommandInvoker.OnFilterResult []
{
"id": null,
"kind": null,
"name": null,
"properties": null,
"type": null
}

cli.knack.cli: Event: Cli.SuccessfulExecute []
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x000001F5B1EB3740>]
az_command_data_logger: exit code: 0
cli.main: Command ran in 1.448 seconds (init: 0.081, invoke: 1.367)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 3958 in cache file under C:\Users\acp79.azure\telemetry\20260609100831148
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure\cli\telemetry_init
.pyc C:\Users\acp79.azure C:\Users\acp79.azure\telemetry\20260609100831148"
telemetry.process: Return from creating process 8412
telemetry.main: Finish creating telemetry upload process.

Related command

az functionapp function keys list

Errors

{
"id": null,
"kind": null,
"name": null,
"properties": null,
"type": null
}

Issue script & Debug output

cli.knack.cli: Command arguments: ['functionapp', 'function', 'keys', 'list', '--resource-group', 'rg-csi022-BankInformation-test', '--name', 'fa-csi022-hrplus-bankexport-test', '--function-name', 'TransformBank10', '--debug']
cli.knack.cli: init debug log:
Enable color in terminal.
cli.knack.cli: Event: Cli.PreExecute []
cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x000001F5B16A9D00>, <function OutputProducer.on_global_arguments at 0x000001F5B1841DA0>, <function CLIQuery.on_global_arguments at 0x000001F5B188FE20>]
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Using packaged command index for profile 'latest'.
cli.azure.cli.core: Modules found from index for 'functionapp': ['azure.cli.command_modules.appservice', 'azure.cli.command_modules.serviceconnector']
cli.azure.cli.core: Loading command modules...
cli.azure.cli.core: Loaded command modules in parallel:
cli.azure.cli.core: Name Load Time Groups Commands
cli.azure.cli.core: serviceconnector 0.095 20 331
cli.azure.cli.core: appservice 0.137 91 303
cli.azure.cli.core: Total (2) 0.142 111 634
cli.azure.cli.core: Loaded 109 groups, 634 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : functionapp function keys list
cli.azure.cli.core: Command table: functionapp function keys list
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x000001F5B1EB34C0>]
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to 'C:\Users\acp79.azure\commands\2026-06-09.10-08-29.functionapp_function_keys_list.47568.log'.
az_command_data_logger: command args: functionapp function keys list --resource-group {} --name {} --function-name {} --debug
cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument..add_subscription_parameter at 0x000001F5B1F0C540>]
cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument..add_ids_arguments at 0x000001F5B1F0CB80>, <function register_global_policy_argument..add_global_policy_argument at 0x000001F5B1F0CCC0>, <function register_cache_arguments..add_cache_arguments at 0x000001F5B1F0CD60>, <function register_upcoming_breaking_change_info..update_breaking_change_info at 0x000001F5B1F0CE00>]
cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x000001F5B1841E40>, <function CLIQuery.handle_query_parameter at 0x000001F5B188FEC0>, <function register_ids_argument..parse_ids_arguments at 0x000001F5B1F0CC20>]
cli.azure.cli.core.commands.client_factory: Getting management service client client_type=WebSiteManagementClient
cli.azure.cli.core.auth.persistence: build_persistence: location='C:\Users\acp79\.azure\msal_token_cache.bin', encrypt=True
cli.azure.cli.core.auth.binary_cache: load: C:\Users\acp79.azure\msal_http_cache.bin
urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
msal.application: Broker enabled? True
cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token_info: scopes=('https://management.core.windows.net//.default',), options={}
cli.azure.cli.core.auth.msal_credentials: UserCredential.acquire_token: scopes=['https://management.core.windows.net//.default'], claims_challenge=None, kwargs={}
msal.application: Cache hit an AT
msal.telemetry: Generate or reuse correlation_id: 348b5e84-1798-4af5-9ce7-449186d780a7
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/a012dae1-f549-4616-ba99-5453b40bd3e9/resourceGroups/rg-csi022-BankInformation-test/providers/Microsoft.Web/sites/fa-csi022-hrplus-bankexport-test/functions/TransformBank10/listkeys?api-version=2025-05-01'
cli.azure.cli.core.sdk.policies: Request method: 'POST'
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': '666a2b9c-63da-11f1-a60a-c0a810f4a203'
cli.azure.cli.core.sdk.policies: 'CommandName': 'functionapp function keys list'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --name --function-name --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.87.0 (MSI) azsdk-python-core/1.39.0 Python/3.13.13 (Windows-11-10.0.26200-SP0)'
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: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com:443 "POST /subscriptions/a012dae1-f549-4616-ba99-5453b40bd3e9/resourceGroups/rg-csi022-BankInformation-test/providers/Microsoft.Web/sites/fa-csi022-hrplus-bankexport-test/functions/TransformBank10/listkeys?api-version=2025-05-01 HTTP/1.1" 200 70
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-Length': '70'
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Expires': '-1'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': '493a3737-cb2e-438d-84f2-a92b4bf1aa9e'
cli.azure.cli.core.sdk.policies: 'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.sdk.policies: 'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.sdk.policies: 'x-ms-operation-identifier': 'tenantId=193743c3-6876-4c23-8fad-238f9423fe00,objectId=a592fdb0-fea4-4ea4-b66d-4860c062dca1/norwayeast/0f13dd39-a483-42bd-9239-3b380c3d7767'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-writes': '199'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-global-writes': '2999'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': '55d73f24-1b32-43ee-9059-ae12f4936800'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'NORWAYEAST:20260609T080830Z:55d73f24-1b32-43ee-9059-ae12f4936800'
cli.azure.cli.core.sdk.policies: 'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies: 'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies: 'X-MSEdge-Ref': 'Ref A: 4A15531A6FBF4D41AEC0668BD9C4BF5C Ref B: GVX011092611060 Ref C: 2026-06-09T08:08:30Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 09 Jun 2026 08:08:30 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"default":"V1ItTmKlNRr2MTqSQ-dZR4P-o3wEptKRlsxHSEn5MQYKAxFurAe17w=="}
cli.knack.cli: Event: CommandInvoker.OnTransformResult [<function _resource_group_transform at 0x000001F5B1F0C900>, <function x509_from_base64_to_hex_transform at 0x000001F5B1F0C9A0>]
cli.knack.cli: Event: CommandInvoker.OnFilterResult []
{
"id": null,
"kind": null,
"name": null,
"properties": null,
"type": null
}

cli.knack.cli: Event: Cli.SuccessfulExecute []
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x000001F5B1EB3740>]
az_command_data_logger: exit code: 0
cli.main: Command ran in 1.448 seconds (init: 0.081, invoke: 1.367)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 3958 in cache file under C:\Users\acp79.azure\telemetry\20260609100831148
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure\cli\telemetry_init
.pyc C:\Users\acp79.azure C:\Users\acp79.azure\telemetry\20260609100831148"
telemetry.process: Return from creating process 8412
telemetry.main: Finish creating telemetry upload process.

Expected behavior

The output:
{
"id": null,
"kind": null,
"name": null,
"properties": null,
"type": null
}
should contain the correct values and not null.

Environment Summary

PS C:\cs\repos> az --version
azure-cli 2.87.0

core 2.87.0
telemetry 1.1.0

Dependencies:
msal 1.36.0
azure-mgmt-resource 24.0.0

Python location 'C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe'
Config directory 'C:\Users\acp79.azure'
Extensions directory 'C:\Users\acp79.azure\cliextensions'

Python (Windows) 3.13.13 (tags/v3.13.13:01104ce, Apr 7 2026, 19:25:48) [MSC v.1944 64 bit (AMD64)]

Legal docs and information: aka.ms/AzureCliLegal

Additional context

No response</issue_description>

Comments on the Issue (you are Copilot in this section)

Yong Zhang (@yonzhan) Thank you for opening this issue, we will look into it. Chandni Patel (@patelchandni) fixed as part of PR: https://github.com//pull/33504 Azure CLI Bot (@azclibot) Thanks for the detailed debug log — this contains everything needed to investigate.

Summary for Copilot:

  • Failing command: az functionapp function keys list --resource-group <rg> --name <fa> --function-name <func>
  • Regression: worked in 2.86.0, broken in 2.87.0
  • Root cause area: azure/cli/command_modules/appservice — specifically the functionapp function keys list command handler
  • Observed behavior: The API call (POST .../listkeys?api-version=2025-05-01) returns {"default": "<key>"} with HTTP 200, but the CLI outputs {"id": null, "kind": null, "name": null, "properties": null, "type": null} — a FunctionKeyInfo-shaped model with all null fields
  • Expected behavior: The function key(s) should be shown in the output

The debug log shows the API response is received correctly but deserialization is mapping it into a model (likely FunctionKeyInfo) whose fields don't match the flat {key_name: key_value} dict the API returns. Check what changed in the 2.87.0 release that altered the response parsing for this command — likely a model schema or SDK update caused the mismatch.

Please look at the functionapp_function_keys_list command in src/azure-cli/azure/cli/command_modules/appservice/ and fix the response parsing so it correctly surfaces the returned keys.


Posted by agent-assist (autonomous bug-fix pipeline).</comment_new>

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 17, 2026

Copy link
Copy Markdown
️✔️AzureCLI-FullTest
️✔️acr
️✔️latest
️✔️3.12
️✔️3.14
️✔️acs
️✔️latest
️✔️3.12
️✔️3.14
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.14
️✔️ams
️✔️latest
️✔️3.12
️✔️3.14
️✔️apim
️✔️latest
️✔️3.12
️✔️3.14
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.14
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.14
️✔️aro
️✔️latest
️✔️3.12
️✔️3.14
️✔️backup
️✔️latest
️✔️3.12
️✔️3.14
️✔️batch
️✔️latest
️✔️3.12
️✔️3.14
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.14
️✔️billing
️✔️latest
️✔️3.12
️✔️3.14
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.14
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.14
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.14
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.14
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.14
️✔️config
️✔️latest
️✔️3.12
️✔️3.14
️✔️configure
️✔️latest
️✔️3.12
️✔️3.14
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.14
️✔️container
️✔️latest
️✔️3.12
️✔️3.14
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.14
️✔️core
️✔️latest
️✔️3.12
️✔️3.14
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.14
️✔️databoxedge
️✔️latest
️✔️3.12
️✔️3.14
️✔️dls
️✔️latest
️✔️3.12
️✔️3.14
️✔️dms
️✔️latest
️✔️3.12
️✔️3.14
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.14
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.14
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.14
️✔️find
️✔️latest
️✔️3.12
️✔️3.14
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.14
️✔️identity
️✔️latest
️✔️3.12
️✔️3.14
️✔️iot
️✔️latest
️✔️3.12
️✔️3.14
️✔️keyvault
️✔️latest
️✔️3.12
️✔️3.14
️✔️lab
️✔️latest
️✔️3.12
️✔️3.14
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️maps
️✔️latest
️✔️3.12
️✔️3.14
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.14
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.14
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.14
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.14
️✔️network
️✔️latest
️✔️3.12
️✔️3.14
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.14
️✔️postgresql
️✔️latest
️✔️3.12
️✔️3.14
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.14
️✔️profile
️✔️latest
️✔️3.12
️✔️3.14
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.14
️✔️redis
️✔️latest
️✔️3.12
️✔️3.14
️✔️relay
️✔️latest
️✔️3.12
️✔️3.14
️✔️resource
️✔️latest
️✔️3.12
️✔️3.14
️✔️role
️✔️latest
️✔️3.12
️✔️3.14
️✔️search
️✔️latest
️✔️3.12
️✔️3.14
️✔️security
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.14
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.14
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.14
️✔️sql
️✔️latest
️✔️3.12
️✔️3.14
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.14
️✔️storage
️✔️latest
️✔️3.12
️✔️3.14
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.14
️✔️telemetry
️✔️latest
️✔️3.12
️✔️3.14
️✔️util
️✔️latest
️✔️3.12
️✔️3.14
️✔️vm
️✔️latest
️✔️3.12
️✔️3.14

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 17, 2026

Copy link
Copy Markdown
️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

@azclibot

Copy link
Copy Markdown
Collaborator

Live test results — azdev test functionapp --live --series

FAIL — no tests selected for functionapp (extension)

Target: functionapp (extension)
PR head ref: copilot/fix-6844498-51040886-713b3c8f-1806-48a6-8dad-6c665ae16ce6
PR head sha: 907ee6d635b50be704974b50b1d4b20bbe17b585
PR base ref: dev
New test files in PR: false

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/27669172706

Last 80 lines of azdev output
| Run Tests |
=============

/home/runner/work/issue-sentinel/issue-sentinel/.venv/bin/az:4: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  __import__('pkg_resources').require('azure-cli==2.87.0')
Traceback (most recent call last):
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 589, in _build_master
    ws.require(__requires__)
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 926, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 787, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 833, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (msrest 0.6.21 (/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages), Requirement.parse('msrest>=0.7.1'), {'azure-mgmt-appcontainers', 'azure-mgmt-policyinsights', 'azure-mgmt-hdinsight', 'azure-mgmt-cosmosdb', 'azure-mgmt-datalake-store', 'azure-mgmt-sqlvirtualmachine'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/bin/az", line 4, in <module>
    __import__('pkg_resources').require('azure-cli==2.87.0')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3282, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3266, in _call_aside
    f(*args, **kwargs)
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 3295, in _initialize_master_working_set
    working_set = _declare_state('object', 'working_set', WorkingSet._build_master())
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 591, in _build_master
    return cls._build_from_requirements(__requires__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 604, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
                             ^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 1014, in __init__
    self.scan(search_path)
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 1046, in scan
    for dist in find_distributions(item):
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2091, in find_on_path
    yield from factory(fullpath)
               ^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2183, in resolve_egg_link
    return next(dist_groups, ())
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2180, in <genexpr>
    os.path.join(os.path.dirname(path), ref) for ref in referenced_paths
                                                        ^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2167, in non_empty_lines
    for line in _read_utf8_with_fallback(path).splitlines():
                ^^^^^^^^^^^^^^^^^^^^^^^^
NameError: name '_read_utf8_with_fallback' is not defined
ERROR: a bytes-like object is required, not 'str'
Traceback (most recent call last):
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/knack/invocation.py", line 224, in execute
    cmd_result = parsed_args.func(params)
                 ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/knack/commands.py", line 149, in __call__
    return self.handler(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/knack/commands.py", line 256, in _command_handler
    result = op(client, **command_args) if client else op(**command_args)
                                                       ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/azdev/operations/testtool/__init__.py", line 58, in run_tests
    test_index = _get_test_index(profile or current_profile(), discover, target_tests=target_tests)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/azdev/operations/testtool/__init__.py", line 336, in _get_test_index
    test_index = _discover_tests(profile, target_tests)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/issue-sentinel/issue-sentinel/.venv/lib/python3.12/site-packages/azdev/operations/testtool/__init__.py", line 203, in _discover_tests
    profile_split = profile.split('-')
                    ^^^^^^^^^^^^^^^^^^
TypeError: a bytes-like object is required, not 'str'

Posted by agent-assist live-test workflow.

@a0x1ab

Copy link
Copy Markdown
Member

Copilot why is there no work done on this yet

@yonzhan

Copy link
Copy Markdown
Collaborator

Copilot

Copilot AI commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Copilot why is there no work done on this yet

I apologize for the confusion. Looking at the codebase, I can see that PR #33504 was already merged into the dev branch before this PR was created. The fix for the az functionapp function keys list command is already present in the code at src/azure-cli/azure/cli/command_modules/appservice/custom.py lines 11649-11656.

The fix handles the case where the SDK returns .properties as None by falling back to dict(keys) to extract the raw payload.

Since the fix is already in place, this issue (#33516) should be resolved. Let me verify this with tests and close out this PR appropriately.

@azclibot Azure CLI Bot (azclibot) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agent Review — Failures Detected

CI Status

Check Result
Most checks (49/50) ✅ Passed
copilot job ❌ Failed

The copilot CI job failed with a transient GitHub infrastructure error:

Failed to fetch job details: HTTP 500 Internal Server Error

This is not a code issue — it's a platform error on GitHub's side. Copilot, please re-run or re-trigger this check.

Live Test (issue-sentinel)

Result: ❌ Failed — RAN_TESTS: false

The live test workflow resolved the target as functionapp (extension) but reported EXIT_CODE: 1 with no tests actually executed (RAN_TESTS: false, NEW_TESTS: false). The test environment may not have been able to locate or set up the functionapp extension module from this PR's changes.

Run: https://github.com/Azure/issue-sentinel/actions/runs/27669172706

Action Required

Copilot please:

  1. Investigate why the live test found no tests to run for the functionapp fix (verify test files are included in the PR).
  2. Re-run the copilot CI check after the transient GitHub 500 error resolves.

Posted by agent-assist (autonomous bug-fix pipeline).

@azclibot Azure CLI Bot (azclibot) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agent-Assist Review — PR #33577

Summary

This PR currently contains only an empty "Initial plan" commit — no source code has been changed yet.


CI results (head 907ee6d6)

Check Result
CI (49/50 checks) ✅ Passed
copilot check ❌ Failed — platform-side HTTP 500 error
Live test (functionapp extension) ❌ Failed — no tests selected (no code changes)

Details

copilot CI failure — This is a GitHub platform infrastructure error, not a code defect:

[cca-engine] Fatal: Error: Failed to fetch job details: HTTP 500 Internal Server Error

The Copilot coding agent was unable to fetch job details and exited before writing any code.

Live test failure — The azdev test functionapp --live run reported RAN_TESTS=false because the PR contains no changed source or test files yet. This is expected given the above.


What's needed

Copilot — the session was interrupted by a platform error. Please resume work on the original issue:

az functionapp function keys list returns null output in v2.87.0 despite successfully retrieving keys.

The fix likely involves a parsing/deserialization change in the functionapp extension. Once real code changes are pushed, CI and live tests will be re-evaluated.


Posted by agent-assist (autonomous bug-fix pipeline).

@patelchandni

Copy link
Copy Markdown
Contributor

This is already fixed in PR: #33504

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

az functionapp function keys list broken in 2.87.0

6 participants