fix(apigateway): invalid JSON structure in StepFunctions error responses causes 500s #34787
+28
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue # (if applicable)
Closes #34777
Reason for this change
The StepFunctions integration in API Gateway has an invalid VTL (Velocity Template Language) response template for 500 errors that generates malformed JSON, causing API Gateway to throw transformation errors instead of properly handling error responses.
Description of changes
stepfunctions.ts:217-219
- Changed from invalid string to proper JSON object structurestepfunctions.test.ts:561-563
- Test now expects corrected JSON templatenetwork-utils.test.ts:111
- Replaced deprecatedfail()
withthrow new Error()
Technical Details:
'"error": $input.path(\'$.error\')'
(invalid JSON string)'{"error": "$input.path(\'$.error\')"}'
(valid JSON object)Describe any new or updated permissions being added
N/A - No IAM permissions changes required. This is a template formatting fix.
Description of how you validated changes
cd packages/aws-cdk-lib/aws-apigateway && yarn build
approachTest Results:
CloudFormation Impact Verified:
"application/json": "\"error\": $input.path('$.error')"
"application/json": "{\n \"error\": \"$input.path('$.error')\"\n }"
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license