Search code examples
amazon-web-servicesaws-lambdaamazon-iamaws-cdk

Why is my AWS CDK Stack failing for an unclear reason?


This is my stack:

import * as cdk from "aws-cdk-lib";
import { Code, Function, Runtime } from "aws-cdk-lib/aws-lambda";
import { Construct } from "constructs";

export class CdkImmersion2HelloCdkStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // defines an AWS Lambda resource
    const hello = new Function(this, "HelloHandler", {
      runtime: Runtime.NODEJS_18_X, // execution environment
      code: Code.fromAsset("lambda"), // code loaded from "lambda" directory
      handler: "hello.handler", // file is "hello", function is "handler"
    });
  }
}

and this is my function code:

exports.handler = async function (event) {
  console.log("request:", JSON.stringify(event, undefined, 2));
  return {
    statusCode: 200,
    headers: { "Content-Type": "text/plain" },
    body: `Hello, CDK! You've hit ${event.path}\n`,
  };
};

When I run cdk synth the cloud formation template builds fine, but when I attempt to deploy it with:

cdk deploy

I get the following error:

❌  CdkImmersion2HelloCdkStack failed: Error: The stack named CdkImmersion2HelloCdkStack 
failed to deploy: UPDATE_ROLLBACK_COMPLETE: Resource handler returned message: "Cannot 
invoke "String.contains(java.lang.CharSequence)" because "errorMsg" is null" 
(RequestToken: <some-token>, HandlerErrorCode: InternalFailure)

What's causing this?


Solution

  • This was caused by an internal issue on AWS. The giveaway was when I searched this error nothing was coming up at all. I went onto the AWS Service Health Page and found an issue registered with AWS IAM:

    AWS Service Health Status shows issue with IAM

    Once this issue was resolved, my stack was deployed as expected.