aws / aws-cdk

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
https://aws.amazon.com/cdk
Apache License 2.0
11.62k stars 3.91k forks source link

Deploy error reporting is not showing the reason of failure when using nested stacks. #5974

Open xoadrian opened 4 years ago

xoadrian commented 4 years ago

main/root stack is not properly reporting errors from nested stacks, there is no way to know why it actually failed because the error is generalized that some resources could not be created, but why, there is no reason. The only chance to see the error is to constantly monitor the deployment on AWS CloudFormation Console, and once it starts to roll back and delete nested stacks you can quickly see why the nested stack failed in events tab.

E.g.:

creating CloudFormation changeset...
 0/3 | 2:07:56 PM | CREATE_IN_PROGRESS   | AWS::CDK::Metadata         | CDKMetadata
 0/3 | 2:07:56 PM | CREATE_IN_PROGRESS   | AWS::CloudFormation::Stack | appsync-bizon.NestedStack/appsync-bizon.NestedStackResource (appsyncbizonNestedStackappsyncbizonNestedStackResource814A53CF)
 0/3 | 2:07:57 PM | CREATE_IN_PROGRESS   | AWS::CloudFormation::Stack | appsync-bizon.NestedStack/appsync-bizon.NestedStackResource (appsyncbizonNestedStackappsyncbizonNestedStackResource814A53CF) Resource creation Initiated
 0/3 | 2:07:58 PM | CREATE_IN_PROGRESS   | AWS::CDK::Metadata         | CDKMetadata Resource creation Initiated
 1/3 | 2:07:58 PM | CREATE_COMPLETE      | AWS::CDK::Metadata         | CDKMetadata
 2/3 | 2:08:19 PM | CREATE_FAILED        | AWS::CloudFormation::Stack | appsync-bizon.NestedStack/appsync-bizon.NestedStackResource (appsyncbizonNestedStackappsyncbizonNestedStackResource814A53CF) Embedded stack arn:aws:cloudformation:eu-west-2:452364846299:stack/ProductName-bizon-appsyncbizonNestedStackappsyncbizonNestedStackResource814A53CF-4NAE12ZLOQGT/a92a4b40-3c46-11ea-9fec-06452e71541c was not successfully created: The following resource(s) failed to create: [dynamodbstackbizonNestedStackdynamodbstackbizonNestedStackResource0AACEAF0, productnameresolversNestedStackproductnameresolversNestedStackResource42DF9B6A].

as you can see there is no reason why it failed, just saying that some resources failed to create. While actually the error on the nested stack events tab is:

E.g.:

Service role arn not specified (Service: AWSAppSync; Status Code: 400; Error Code: BadRequestException; Request ID: 5a9b00be-f21c-4cea-97ad-3d0e8552c5e5)

or

Only one resolver is allowed per field. (Service: AWSAppSync; Status Code: 400; Error Code: BadRequestException; Request ID: 39813c06-7d28-4d72-be32-f05785f4338e)
  QueryListEvents, WikiArticleLastRevision

or

Property validation failure: [Value for property {/Name} does not match pattern {[_A-Za-z][_0-9A-Za-z]*}]

So there is no way to know about those errors because on roll back those stacks are removed, and developer will never know why it failed.

Reproduction Steps

Just add a nested stack and try to simulate the above error examples:

  1. Create AppSync nested stack but don't create service roll for it, and try to create another resource which should rely on that service role.
  2. Name a resource in a nested stack improperly with - or .
  3. Create 2 same resolver in one nested stack. etc ... basically any error that will be thrown inside nested stack

Error Log

already specified above

Environment

Other

I found this issue opened as a feature #4489 but I don't think it is a feature, rather it is a bug, since the feature of having Nested Stacks exists, this means that error reporting for nested stack to be chained in the parent wasn't.


This is :bug: Bug Report

VictorMorenoJimenez commented 3 years ago

Hi, any updates on this? I'm working with nested stacks and it is pretty annoying to debug errors. Thanks!

nlaffey-icario commented 3 years ago

I'm also trying to learn CDK right now and wondering how I'm supposed to debug anything when all I'm getting is something like "The following resource(s) failed to create: [Serverapp, EbsStackawselasticbeanstalkec2roleD9735CA4]."

ghost commented 2 years ago

News on this? Thanks!

cosmin5mins commented 2 years ago

Still an issue for us

karlskellenPFG commented 2 years ago

wack

Zackhardtoname commented 2 years ago

Just to highlight the OP's solution

The only chance to see the error is to constantly monitor the deployment on AWS CloudFormation Console

It actually worked for and unblocked me

RcSepp commented 2 years ago

I faced the same issue, but found the failed nested stack in the CloudFormation CLI under stacks and when toggling the dropdown from "Active" to "Deleted". The stack events for that one contained the failure reason.

songzh-AZ commented 2 years ago

same issue still, any dev willing to look for this?

fredtcaroli commented 1 year ago

Can we get an update on this? Super annoying to debug

DavidDryja commented 1 year ago

Update please? It would help to see an error when debugging.

Aeolun commented 1 year ago

You can actually get the error on the CloudFormation console by going to the parent stack, finding the event for the child stack that failed, copying the name of the stack. Going to the sidebar and selecting 'Deleted Stacks', then searching for the child stack name.

Then look through the events of the deleted child stack to find the actual issue.

This is very far from user friendly.

cscetbon commented 1 year ago

@TheRealAmazonKendra It seems the closed PR didn't fix the issue. Any update on this ? it's been 2 years ...

LeoStage commented 1 year ago

similar issues here, I'm receiving an error when try to deploy and getting this message ❌ Deployment failed: Error: The stack named xxx failed to deploy: UPDATE_ROLLBACK_COMPLETE: Received response status [FAILED] from custom resource. Message returned: See the details in CloudWatch Log Stream: 2023/09/25/[$LATEST]1865cd90f7eb4da6aac8239dad6573d4 (RequestId: b550d905-e34b-41f9-a9b6-0c87986425f0)

When I went to the logs there is no information about the error

Amplifiyer commented 1 year ago

Change https://github.com/aws/aws-cdk/pull/27318 is released with aws-cdk 2.100.0. Can you test with this version and see if this issue is resolved?

StevenGBrown commented 9 months ago

Change #27318 is released with aws-cdk 2.100.0. Can you test with this version and see if this issue is resolved?

Worked for me with aws-cdk 2.123.0.

jpbndl commented 7 months ago

If it is CREATE_FAILED and it happened to rollback, please filter the CloudFormation list and select "Deleted". The actual reason will be in this stack which has been rolled back or been deleted.