Skip to content

az notification-hub credential gcm update ignores --resource-group argument #31483

@bartvanandel

Description

@bartvanandel

Describe the bug

Setting google API key fails because --resource-group argument is ignored.

I just tried connecting our Google API key "secret" with our new notification-hub, but it failed with "ResourceNotFoundError"

Command augmented with --verbose to get more details:
az notification-hub credential gcm update --resource-group X --namespace-name Y --notification-hub-name Z --google-api-key secret --verbose

Output contains this:
Configured default 'our-default-rg' for arg resource_group

So, it seems that the argument for --resource-group is ignored. Tried --resource_group (with an underscore) because of what the output says, no difference. Using the short form -g doesn't produce any different output either.

Related command

az notification-hub credential gcm update

Errors

ResourceNotFoundError

Issue script & Debug output

cli.knack.cli: Command arguments: ['notification-hub', 'credential', 'gcm', 'update', '--resource-group', 'X', '--namespace-name', 'Y', '--notification-hub-name', 'Z', '--google-api-key', 'secret', '--verbose', '--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 0x10710af20>, <function OutputProducer.on_global_arguments at 0x1072dfc40>, <function CLIQuery.on_global_arguments at 0x107321440>]
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Modules found from index for 'notification-hub': ['azext_notification_hub']
cli.azure.cli.core: Loading command modules:
cli.azure.cli.core: Name Load Time Groups Commands
cli.azure.cli.core: Total (0) 0.000 0 0
cli.azure.cli.core: These extensions are not installed and will be skipped: ['azext_ai_examples', 'azext_next']
cli.azure.cli.core: Loading extensions:
cli.azure.cli.core: Name Load Time Groups Commands Directory
cli.azure.cli.core: notification-hub 0.154 5 20 /Users/bart/.azure/cliextensions/notification-hub
cli.azure.cli.core: Total (1) 0.154 5 20
cli.azure.cli.core: Loaded 5 groups, 20 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : notification-hub credential gcm update
cli.azure.cli.core: Command table: notification-hub credential gcm update
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x1086e6ac0>]
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/Users/bart/.azure/commands/2025-05-15.17-58-34.notification-hub_credential_gcm_update.52975.log'.
az_command_data_logger: command args: notification-hub credential gcm update --resource-group {} --namespace-name {} --notification-hub-name {} --google-api-key {} --verbose --debug
cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument..add_subscription_parameter at 0x108755f80>]
cli.knack.commands: Configured default 'our-default-rg' for arg resource_group
cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument..add_ids_arguments at 0x108756020>, <function register_cache_arguments..add_cache_arguments at 0x108756160>, <function register_upcoming_breaking_change_info..update_breaking_change_info at 0x108756200>]
cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x1072dfce0>, <function CLIQuery.handle_query_parameter at 0x1073214e0>, <function register_ids_argument..parse_ids_arguments at 0x1087560c0>]
az_command_data_logger: extension name: notification-hub
az_command_data_logger: extension version: 1.0.0a1
This command is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
cli.azure.cli.core.auth.persistence: build_persistence: location='/Users/bart/.azure/msal_token_cache.json', encrypt=False
cli.azure.cli.core.auth.binary_cache: load: /Users/bart/.azure/msal_http_cache.bin
urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
msal.authority: Initializing with Entra authority: https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251
msal.authority: openid_config("https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/v2.0/.well-known/openid-configuration") = {'token_endpoint': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/oauth2/v2.0/token', 'token_endpoint_auth_methods_supported': ['client_secret_post', 'private_key_jwt', 'client_secret_basic'], 'jwks_uri': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/discovery/v2.0/keys', 'response_modes_supported': ['query', 'fragment', 'form_post'], 'subject_types_supported': ['pairwise'], 'id_token_signing_alg_values_supported': ['RS256'], 'response_types_supported': ['code', 'id_token', 'code id_token', 'id_token token'], 'scopes_supported': ['openid', 'profile', 'email', 'offline_access'], 'issuer': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/v2.0', 'request_uri_parameter_supported': False, 'userinfo_endpoint': 'https://graph.microsoft.com/oidc/userinfo', 'authorization_endpoint': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/oauth2/v2.0/authorize', 'device_authorization_endpoint': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/oauth2/v2.0/devicecode', 'http_logout_supported': True, 'frontchannel_logout_supported': True, 'end_session_endpoint': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/oauth2/v2.0/logout', 'claims_supported': ['sub', 'iss', 'cloud_instance_name', 'cloud_instance_host_name', 'cloud_graph_host_name', 'msgraph_host', 'aud', 'exp', 'iat', 'auth_time', 'acr', 'nonce', 'preferred_username', 'name', 'tid', 'ver', 'at_hash', 'c_hash', 'email'], 'kerberos_endpoint': 'https://login.microsoftonline.com/b382a2b6-2c10-486e-9ebe-6f39c3a08251/kerberos', 'tenant_region_scope': 'EU', 'cloud_instance_name': 'microsoftonline.com', 'cloud_graph_host_name': 'graph.windows.net', 'msgraph_host': 'graph.microsoft.com', 'rbac_url': 'https://pas.windows.net'}
msal.application: Broker enabled? None
cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token: scopes=('https://management.core.windows.net//.default',), kwargs={}
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: adc04134-b80a-43b6-b48b-4df52233c16f
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/notificationHubs/Z?api-version=2017-04-01'
cli.azure.cli.core.sdk.policies: Request method: 'GET'
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': '74915e6e-31a5-11f0-b3a8-acde48001122'
cli.azure.cli.core.sdk.policies: 'CommandName': 'notification-hub credential gcm update'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --namespace-name --notification-hub-name --google-api-key --verbose --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.72.0 (HOMEBREW) azsdk-python-core/1.31.0 Python/3.12.10 (macOS-15.5-x86_64-i386-64bit)'
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 "GET /subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/notificationHubs/Z?api-version=2017-04-01 HTTP/1.1" 200 405
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': '405'
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-ratelimit-remaining-subscription-reads': '249'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'TrackingId': 'c0b8b597-83d1-42a2-a5c0-5b7f6da7bc4e'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': 'a4e8eb2d-c33d-47cd-877b-7c68fe997092'
cli.azure.cli.core.sdk.policies: 'api-supported-versions': '2014-09-01, 2016-03-01, 2017-04-01, 2020-01-01-preview, 2023-01-01-preview, 2023-09-01, 2023-10-01-preview'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-global-reads': '3749'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': 'a4e8eb2d-c33d-47cd-877b-7c68fe997092'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'WESTEUROPE:20250515T155835Z:a4e8eb2d-c33d-47cd-877b-7c68fe997092'
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: 1BFF8D0BAA6245B983F1CE917EB38AF5 Ref B: DB3EDGE2813 Ref C: 2025-05-15T15:58:34Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Thu, 15 May 2025 15:58:34 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"properties":{"registrationTtl":"10675199.02:48:05.4775807","authorizationRules":[],"dailyMaxActiveDevices":0},"id":"/subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/NotificationHubs/Z","name":"Z","type":"Microsoft.NotificationHubs/namespaces/notificationHubs","location":"West Europe"}
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/notificationHubs/Z?api-version=2017-04-01'
cli.azure.cli.core.sdk.policies: Request method: 'PUT'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'Content-Length': '212'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': '74915e6e-31a5-11f0-b3a8-acde48001122'
cli.azure.cli.core.sdk.policies: 'CommandName': 'notification-hub credential gcm update'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --namespace-name --notification-hub-name --google-api-key --verbose --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.72.0 (HOMEBREW) azsdk-python-core/1.31.0 Python/3.12.10 (macOS-15.5-x86_64-i386-64bit)'
cli.azure.cli.core.sdk.policies: 'Authorization': '
'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {"location": "West Europe", "properties": {"authorizationRules": [], "gcmCredential": {"properties": {"googleApiKey": "secret"}}, "registrationTtl": "10675199.02:48:05.4775807"}}
urllib3.connectionpool: https://management.azure.com:443 "PUT /subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/notificationHubs/Z?api-version=2017-04-01 HTTP/1.1" 200 381
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': '381'
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-operation-identifier': 'tenantId=b382a2b6-2c10-486e-9ebe-6f39c3a08251,objectId=67905c3c-0459-465b-b33c-69e9ae87a6c1/westeurope/8a940fe2-8076-4bb6-9f28-ad4ec4cdf632'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'TrackingId': '9695f905-fcce-47f9-957e-9625edabd525'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': '2e68c71a-1b7c-41cc-82b4-3b9f251799d8'
cli.azure.cli.core.sdk.policies: 'api-supported-versions': '2014-09-01, 2016-03-01, 2017-04-01, 2020-01-01-preview, 2023-01-01-preview, 2023-09-01, 2023-10-01-preview'
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-request-id': '2e68c71a-1b7c-41cc-82b4-3b9f251799d8'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'WESTEUROPE:20250515T155836Z:2e68c71a-1b7c-41cc-82b4-3b9f251799d8'
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: 91BFDF13C03240B2A14FA4E6D62D1170 Ref B: DB3EDGE2813 Ref C: 2025-05-15T15:58:35Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Thu, 15 May 2025 15:58:35 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"properties":{"registrationTtl":"10675199.02:48:05.4775807","dailyMaxActiveDevices":0},"id":"/subscriptions/87743d70-f122-489a-ab1b-9eed92fd22e4/resourceGroups/X/providers/Microsoft.NotificationHubs/namespaces/Y/NotificationHubs/Z","name":"Z","type":"Microsoft.NotificationHubs/namespaces/notificationHubs","location":"West Europe"}
cli.azure.cli.core.azclierror: Traceback (most recent call last):
File "/usr/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/knack/cli.py", line 233, in invoke
cmd_result = self.invocation.execute(args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/azure/cli/core/commands/init.py", line 666, in execute
raise ex
File "/usr/local/Cellar/azure-cli/2.72.0/libexec/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/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/azure/cli/core/commands/init.py", line 703, in _run_job
result = cmd_copy(params)
^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/azure/cli/core/aaz/_command.py", line 155, in call
return self._handler(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bart/.azure/cliextensions/notification-hub/azext_notification_hub/aaz/latest/notification_hub/credential/gcm/_create.py", line 32, in _handler
return self._output()
^^^^^^^^^^^^^^
File "/Users/bart/.azure/cliextensions/notification-hub/azext_notification_hub/aaz/latest/notification_hub/credential/gcm/_create.py", line 95, in _output
result = self.deserialize_output(self.ctx.selectors.subresource.required(), client_flatten=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/azure/cli/core/aaz/_selector.py", line 59, in required
raise UserFault("ResourceNotFoundError")
azure.cli.core.azclierror.UserFault: ResourceNotFoundError

cli.azure.cli.core.azclierror: ResourceNotFoundError
az_command_data_logger: ResourceNotFoundError
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x1086e6d40>]
az_command_data_logger: exit code: 1
cli.main: Command ran in 2.016 seconds (init: 0.159, invoke: 1.857)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.client: Accumulated 0 events. Flush the clients.
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 4216 in cache file under /Users/bart/.azure/telemetry/20250515175836255
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "/usr/local/Cellar/azure-cli/2.72.0/libexec/bin/python /usr/local/Cellar/azure-cli/2.72.0/libexec/lib/python3.12/site-packages/azure/cli/telemetry/init.py /Users/bart/.azure /Users/bart/.azure/telemetry/20250515175836255"
telemetry.process: Return from creating process 52986
telemetry.main: Finish creating telemetry upload process.

Expected behavior

Google API key is set using the provided resource group and other details

Environment Summary

azure-cli 2.72.0

core 2.72.0
telemetry 1.1.0

Extensions:
notification-hub 1.0.0a1

Dependencies:
msal 1.32.3
azure-mgmt-resource 23.1.1

Python location '/usr/local/Cellar/azure-cli/2.72.0/libexec/bin/python'
Config directory '/Users/bart/.azure'
Extensions directory '/Users/bart/.azure/cliextensions'

Python (Darwin) 3.12.10 (main, Apr 8 2025, 11:35:47) [Clang 16.0.0 (clang-1600.0.26.6)]

Legal docs and information: aka.ms/AzureCliLegal

Your CLI is up-to-date.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Notification HubService AttentionThis issue is responsible by Azure service team.bugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions