Skip to content

amplify-alpha: custom_response_headers cannot be empty #35693

@bobveringa-sf

Description

@bobveringa-sf

Describe the bug

In CDK 2.202.0, PR #31771 was introduced, which added support for appRoot in custom response headers for Amplify. This PR caused issues in our application for some uses of the amplify.App construct. Specifically, the issue appeared whenever custom_response_headers was an empty list.

Regression Issue

  • Select this option if this issue appears to be a regression.

Last Known Working CDK Library Version

2.201.0

Expected Behavior

Run cdk synth without errors

Current Behavior

Running cdk synth fails with the following error.

jsii.errors.JavaScriptError:
  TypeError: Cannot read properties of undefined (reading 'appRoot')
      at renderCustomResponseHeaders (REDACTED\node_modules\@aws-cdk\aws-amplify-alpha\lib\app.js:269:41)
      at new App (REDACTED\node_modules\@aws-cdk\aws-amplify-alpha\lib\app.js:103:58)
      at new App (REDACTED\node_modules\aws-cdk-lib\core\lib\prop-injectable.js:1:488)
      at Kernel._Kernel_create (REDACTED\Local\Temp\tmpzcf1ob0l\lib\program.js:548:25)
      at Kernel.create (REDACTED\Local\Temp\tmpzcf1ob0l\lib\program.js:218:93)
      at KernelHost.processRequest (REDACTED\Local\Temp\tmpzcf1ob0l\lib\program.js:15479:36)
      at KernelHost.run (REDACTED\Local\Temp\tmpzcf1ob0l\lib\program.js:15439:22)
      at Immediate._onImmediate (REDACTED\Local\Temp\tmpzcf1ob0l\lib\program.js:15440:45)
      at process.processImmediate (node:internal/timers:485:21)

Reproduction Steps

My example is based on Python, but given how simple it is, it should not be a problem to reproduce this in other languages.

app = amplify.App(
    self, 'App',
    custom_response_headers=[],
)

Possible Solution

#31771 Added (among other lines) the line
const hasAppRoot = customHeaders[0].appRoot !== undefined; link.

My guess is that taking index 0 of an empty list is what is causing the error. In this case a possible solution would be to add a simple check that the list has more than 0 entries.

Additional Information/Context

No response

AWS CDK Library version (aws-cdk-lib)

2.202.0

AWS CDK CLI version

2.1029.4 (build 09c0061)

Node.js Version

v22.20.0

OS

Windows 11

Language

Python

Language Version

No response

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/aws-amplifyRelated to AWS AmplifybugThis issue is a bug.p0potential-regressionMarking this issue as a potential regression to be checked by team member

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions