Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors should be in better format #127

Open
slavizh opened this issue May 28, 2024 · 1 comment
Open

Errors should be in better format #127

slavizh opened this issue May 28, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request triaged Team has triaged the item

Comments

@slavizh
Copy link

slavizh commented May 28, 2024

Is your feature request related to a problem? Please describe.
One of the issues related to this is most likely that Graph resources are not displayed in Azure Deployments as resources. As such we do not have the usual ARM/Bicep errors for resources and that is confusing.

With deployments for Azure resources we can have error like this:

     | 13:21:11 - The deployment 'lz-storage-account-240527135pgyh' failed with
     | error(s). Showing 3 out of 3 error(s). Status Message: vault container
     | already exists and ImmutableStorageWithVersioning property is immutable.
     | The container must undergo a migration to support immutable Storage with
     | versioning. (Code:ContainerMustUndergoObjectLevelWormMigration)  Status
     | Message: At least one resource deployment operation failed. Please list
     | deployment operations for details. Please see

From Azure deployments (operations) we can extract the same information and structure it like this:

ailed Deployments
--------------------
Id: 
Code: DeploymentStackDeploymentFailed
Message: One or more resources could not be deployed. Correlation id: '81299724-a760-4808-b302-4682e76cd461'.

Id: /subscriptions/<sub id>/providers/Microsoft.Resources/deployments/lz-storage-account-240527135pgyh
Code: DeploymentFailed
Message: At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.

Id: 
Code: ContainerMustUndergoObjectLevelWormMigration
Message: vault container already exists and ImmutableStorageWithVersioning property is immutable. The container must undergo a migration to support immutable Storage with versioning.


Failed Resources
--------------------
Id: /subscriptions/<sub id>/resourceGroups/lz-storage-account/providers/Microsoft.Storage/storageAccounts/<storage name>/blobServices/default/containers/vault
Code: ContainerMustUndergoObjectLevelWormMigration
Message: vault container already exists and ImmutableStorageWithVersioning property is immutable. The container must undergo a migration to support immutable Storage with versioning.

Such information is even available directly in deployment stacks without needing to query deployment operations to get it.
As you can see this is very clear and well structured information what is failing and for which resource.
With Graph resources we do not have that. We have information like:

11:55:28 - The deployment 'azDeploy-240523115357-lz-ms-graph-test'
     | failed with error(s). Showing 3 out of 4 error(s). Status Message:
     | {"error":{"code":"BadRequest","target":"/resources/entraGroupRes","message":"AppOnly OBO tokens not supported by target service. Graph client request id: 624c90dc-600f-452a-a21a-4df1a7d2d672. Graph request timestamp: Thu, 23 May 2024 11:54:52 GMT."}} (Code:DeploymentOperationFailed)  Status Message: At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details. (Code: DeploymentFailed)  - {"error":{"code":"BadRequest","target":"/resources/entraGroupRes","message":"AppOnly OBO tokens not supported by target service. Graph client request id: 624c90dc-600f-452a-a21a-4df1a7d2d672. Graph request timestamp: Thu, 23 May 2024 11:54:52 GMT."}} (Code:)   Status Message: At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details. (Code: DeploymentFailed)  - {"error":{"code":"BadRequest","target":"/resources/entraGroupRes","message":"AppOnly OBO tokens not supported by target service. Graph client request id: 2067aa5d-d196-4bdb-9fc7-db7cdfb0e11a. Graph request timestamp: Thu, 23 May 2024 11:54:52 GMT."}} (Code:)   CorrelationId: 6688fdc1-313c-47ee-9582-f0f76ddd7a00

If we look at the name of target resource /resources/entraGroupRes you basically you are missing vital information like:

  • what is the type of the resource that is failing
  • which is the exact resource failing

Instead we have this name entraGroupRes. This is basically the symbolic name of the resources I have defined in my template. In this case this is the name of multiple resources as entraGroupRes is a loop upon Microsoft.Graph/groups type. Many times the actual deployment is done by engineers who did not code the template, they only provide the configuration for the deployment so they do not know what entraGroupRes represents let alone being able to pin down to the exact resource.

If we take the current Graph error I think it should at the end achieve the same type of functionality in Azure Deployments where the graph resources are present within Deployment/Deployment operations in way that you can achieve something like this

Failed Resources
--------------------
Id: providers/Microsoft.Graph/groups/exampleGroup1
Code: '' // as far as I understand this error does not have code.
Message: AppOnly OBO tokens not supported by target service. Graph client request id: 624c90dc-600f-452a-a21a-4df1a7d2d672. Graph request timestamp: Thu, 23 May 2024 11:54:52 GMT.

Also if multiple resources are failing even if it is with the same error you should be able to list each one of them as separate one.

I think this represents quite improvement and alignment with the existing experience.

Describe the solution you'd like
described

Additional context
n/a

@slavizh slavizh added the enhancement New feature or request label May 28, 2024
@dkershaw10 dkershaw10 added the triaged Team has triaged the item label May 28, 2024
@dkershaw10
Copy link
Collaborator

@jason-dou will investigate further with Shenglong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request triaged Team has triaged the item
Projects
None yet
Development

No branches or pull requests

3 participants