-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
Please add your +1 👍 to let us know you have encountered this
Status: RESOLVED
Overview:
CDK pipelines are failing to publish assets created by CDK version 2.174.0 due to a schema version mismatch error.
Complete Error Message:
Error: Canot read asset manifest 'assembly-StackName-StageName/xxxxxxxx.assets.json': Cloud assembly schema version mismatch: Maximum schema version supported is 38.x.x, but found 39.0.0Workaround:
Revert aws-cdk-lib to version 2.173.4 or less.
Solution:
No action needed. Rerunning the pipeline should now install cdk-assets@2.155.82 (at least), which supports schema version 39 and successfully publish the assets.
original post
Describe the bug
I have a CodePipeline built by CDK pipelines aws-cdk-lib/pipelines.
After upgrading CDK 2.174.0, action FileAsset failed with following error message:
Error: Canot read asset manifest 'assembly-StackName-StageName/xxxxxxxx.assets.json': Cloud assembly schema version mismatch: Maximum schema version supported is 38.x.x, but found 39.0.0
Regression Issue
- Select this option if this issue appears to be a regression.
Last Known Working CDK Version
2.173.2
Expected Behavior
FileAsset action uploads assets for my stage.
Current Behavior
Build log: (some words are masked)
[Container] 2025/01/06 06:20:17.234247 Entering phase INSTALL
[Container] 2025/01/06 06:20:17.276438 Running command npm install -g cdk-assets@latest
added 114 packages in 12s
24 packages are looking for funding
run `npm fund` for details
[Container] 2025/01/06 06:20:35.713480 Phase complete: INSTALL State: SUCCEEDED
[Container] 2025/01/06 06:20:35.713521 Phase context status code: Message:
[Container] 2025/01/06 06:20:35.753632 Entering phase PRE_BUILD
[Container] 2025/01/06 06:20:35.755169 Phase complete: PRE_BUILD State: SUCCEEDED
[Container] 2025/01/06 06:20:35.755184 Phase context status code: Message:
[Container] 2025/01/06 06:20:35.795870 Entering phase BUILD
[Container] 2025/01/06 06:20:35.797049 Running command cdk-assets --path "assembly-StackName-StageName/xxxxxxxxxx.assets.json" --verbose publish "xxxxxxxx:xxxxxxxx-ap-northeast-1"
Error: Canot read asset manifest 'assembly-StackName-StageName/xxxxxxxxxx.assets.json': Cloud assembly schema version mismatch: Maximum schema version supported is 38.x.x, but found 39.0.0
at AssetManifest.fromFile (/usr/local/lib/node_modules/cdk-assets/lib/asset-manifest.js:20:19)
at AssetManifest.fromPath (/usr/local/lib/node_modules/cdk-assets/lib/asset-manifest.js:39:30)
at publish (/usr/local/lib/node_modules/cdk-assets/bin/publish.js:7:40)
at /usr/local/lib/node_modules/cdk-assets/bin/cdk-assets.js:39:37
at Object.handler (/usr/local/lib/node_modules/cdk-assets/bin/cdk-assets.js:62:15)
at Object.runCommand (/usr/local/lib/node_modules/cdk-assets/node_modules/yargs/build/index.cjs:446:48)
at Object.parseArgs [as _parseArgs] (/usr/local/lib/node_modules/cdk-assets/node_modules/yargs/build/index.cjs:2697:57)
at Object.get [as argv] (/usr/local/lib/node_modules/cdk-assets/node_modules/yargs/build/index.cjs:2651:25)
at main (/usr/local/lib/node_modules/cdk-assets/bin/cdk-assets.js:49:31)
at Object.<anonymous> (/usr/local/lib/node_modules/cdk-assets/bin/cdk-assets.js:65:1)
[Container] 2025/01/06 06:20:35.982156 Command did not exit successfully cdk-assets --path "assembly-StackName-StageName/xxxxxxxxxx.assets.json" --verbose publish "xxxxxxxx:xxxxxxxx-ap-northeast-1" exit status 1
[Container] 2025/01/06 06:20:35.986643 Phase complete: BUILD State: FAILED
The latest cdk-assets seems not to support cloud assembly schema v39.
Reproduction Steps
Build a CDK pipeline CodePipeline and deploy it.
const pipeline = new pipelines.CodePipeline(this, 'Pipeline', {
synth: new pipelines.ShellStep('Synth', {
input: pipelines.CodePipelineSource.connection('repo/name', 'main', { connectionArn }),
installCommands: ['yarn install'],
commands: ['cdk synth'],
primaryOutputDirectory: 'cdk.out',
}),
});
pipeline.addStage(new MyStage(this, 'MyStage'));
pipeline.buildPipeline();Possible Solution
cdk-assets v3.0.0-rc.111 may support v39.
But the install command npm install -g cdk-assets@latest is hardcoded here
aws-cdk/packages/aws-cdk-lib/pipelines/lib/codepipeline/codepipeline.ts
Lines 840 to 842 in 86d2853
| installCommands: [ | |
| 'npm install -g cdk-assets@latest', | |
| ], |
Additional Information/Context
No response
CDK CLI Version
2.174.0
Framework Version
No response
Node.js Version
CodeBuild default
OS
CodeBuild Linux container
Language
TypeScript
Language Version
No response
Other information
No response