azure-sdk-for-net
azure-sdk-for-net copied to clipboard
[BUG] When calling GetRoleAssignments for a resource that contains `#` in the ResourceName, a BadRequest occurs.
Library name and version
Azure.ResourceManager.Authorization 1.1.3.0
Describe the bug
When calling GetRoleAssignments for a resource that contains #
in the ResourceName, a BadRequest occurs.
In the case of an App Service certificate (resource type Microsoft.Web/certificates
), it seems that resources with names like {Thumbprint}#{ResourceGroupName}-{Region}webspace
may be generated.
Expected behavior
200 OK
Actual behavior
Azure.RequestFailedException:
at Azure.Core.PageableHelpers+PageableImplementation`1.GetResponse (Azure.ResourceManager.Authorization, Version=1.1.3.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at Azure.Core.PageableHelpers+PageableImplementation`1+<GetNextResponseAsync>d__20.MoveNext (Azure.ResourceManager.Authorization, Version=1.1.3.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Core.PageableHelpers+PageableImplementation`1+<GetAsyncEnumerator>d__15.MoveNext (Azure.ResourceManager.Authorization, Version=1.1.3.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ThrowForFailedGetResult (System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Core.PageableHelpers+PageableImplementation`1+<GetAsyncEnumerator>d__15.System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult (Azure.ResourceManager.Authorization, Version=1.1.3.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
The api-version query parameter (?api-version=) is required for all requests.
Status: 400 (Bad Request)
ErrorCode: MissingApiVersionParameter
Content:
{"error":{"code":"MissingApiVersionParameter","message":"The api-version query parameter (?api-version=) is required for all requests."}}
Headers:
Cache-Control: no-cache
Pragma: no-cache
x-ms-failure-cause: REDACTED
x-ms-request-id: 44586804-c3b3-43ba-9d73-7f7d568f864a
x-ms-correlation-request-id: REDACTED
x-ms-routing-request-id: REDACTED
Strict-Transport-Security: REDACTED
X-Content-Type-Options: REDACTED
X-Cache: REDACTED
X-MSEdge-Ref: REDACTED
Date: Wed, 25 Sep 2024 05:01:19 GMT
Content-Length: 137
Content-Type: application/json; charset=utf-8
Expires: -1
Reproduction Steps
Call GetRoleAssignments on resources whose ResourceName contains #
.
var subscription = armClient.GetSubscriptionResource(SubscriptionResource.CreateResourceIdentifier(subscriptionId));
subscription = (await subscription.GetAsync()).Value;
var resourceGroups = subscription.GetResourceGroups();
foreach (var resourceGroup in resourceGroups)
{
await foreach (var resoures in resourceGroup.GetGenericResourcesAsync())
{
await foreach (var roleAssingment in resoures.GetRoleAssignments())
{
}
}
}
Environment
Azure AppService Function Apps .NET 8 Isolated