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

Labels

Auto-AssignAuto assign by botAzure CLI TeamThe command of the issue is owned by Azure CLI teamComputeaz vm/vmss/image/disk/snapshotcustomer-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

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions