Skip to content

Error badly formed help string with Python v3.14.0 #32356

@zfiel

Description

@zfiel

Describe the bug

The error badly formed help string appears with Python v3.14.0

Related command

az vmss update \
  --name "$VMSS_RESOURCE_NAME" \
  --resource-group "$VMSS_RESOURCE_GROUP_NAME" \
  --set virtualMachineProfile.storageProfile.imageReference.id="$IMAGE_ID"

Errors

ERROR: The command failed with an unexpected error. Here is the traceback:
ERROR: badly formed help string
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/argparse.py", line 1747, in _check_help
    formatter._expand_help(action)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 678, in _expand_help
    return help_string % params
           ~~~~~~~~~~~~^~~~~~~~
ValueError: incomplete format
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/lib/python3.14/site-packages/azure/cli/core/commands/__init__.py", line 568, in execute
    self.parser.load_command_table(self.commands_loader)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/azure/cli/core/parser.py", line 129, in load_command_table
    param = AzCliCommandParser._add_argument(command_parser, arg)
  File "/usr/local/lib/python3.14/site-packages/knack/parser.py", line 64, in _add_argument
    return obj.add_argument(*scrubbed_options_list, **argparse_options)
           ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 1561, in add_argument
    self._check_help(action)
    ~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 1749, in _check_help
    raise ValueError('badly formed help string') from exc
ValueError: badly formed help string
To check existing issues, please visit: https://github.com/Azure/azure-cli/issues

Issue script & Debug output

# docker run --rm -it --entrypoint bash python:3.14 -c "set -x ; pip install azure-cli ; az --version ; az vmss --help ; az vmss update --help"
+ pip install azure-cli
Collecting azure-cli
...
+ az --version
azure-cli                         2.78.0

core                              2.78.0
telemetry                          1.1.0

Dependencies:
msal                            1.34.0b1
azure-mgmt-resource               23.3.0

Python location '/usr/local/bin/python3.14'
Config directory '/root/.azure'
Extensions directory '/root/.azure/cliextensions'

Python (Linux) 3.14.0 (main, Oct 21 2025, 11:44:31) [GCC 14.2.0]

Legal docs and information: aka.ms/AzureCliLegal


Your CLI is up-to-date.
+ az vmss --help

Group
    az vmss : Manage groupings of virtual machines in an Azure Virtual Machine
    Scale Set (VMSS).

Subgroups:
    application
...
    wait

To search AI knowledge base for examples, use: az find "az vmss"

+ az vmss update --help
The command failed with an unexpected error. Here is the traceback:
badly formed help string
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/argparse.py", line 1747, in _check_help
    formatter._expand_help(action)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 678, in _expand_help
    return help_string % params
           ~~~~~~~~~~~~^~~~~~~~
ValueError: incomplete format

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/lib/python3.14/site-packages/azure/cli/core/commands/__init__.py", line 568, in execute
    self.parser.load_command_table(self.commands_loader)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/azure/cli/core/parser.py", line 129, in load_command_table
    param = AzCliCommandParser._add_argument(command_parser, arg)
  File "/usr/local/lib/python3.14/site-packages/knack/parser.py", line 64, in _add_argument
    return obj.add_argument(*scrubbed_options_list, **argparse_options)
           ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 1561, in add_argument
    self._check_help(action)
    ~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/local/lib/python3.14/argparse.py", line 1749, in _check_help
    raise ValueError('badly formed help string') from exc
ValueError: badly formed help string
To check existing issues, please visit: https://github.com/Azure/azure-cli/issues

Expected behavior

Update the VMSS Image ID

Environment Summary

azure-cli 2.78.0

core 2.78.0
telemetry 1.1.0

Dependencies:
msal 1.34.0b1
azure-mgmt-resource 23.3.0

Python location '/usr/local/bin/python3.14'
Config directory '/root/.azure'
Extensions directory '/root/.azure/cliextensions'

Python (Linux) 3.14.0 (main, Oct 21 2025, 11:44:31) [GCC 14.2.0]

Additional context

No response

Metadata

Metadata

Assignees

Labels

Auto-AssignAuto assign by botAzure CLI TeamThe command of the issue is owned by Azure CLI teamComputeaz vm/vmss/image/disk/snapshotact-observability-squadcustomer-reportedIssues that are reported by GitHub users external to the Azure organization.questionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions