-
Notifications
You must be signed in to change notification settings - Fork 4.5k
‼️ NOTICE | apigateway: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel #21902
Description
Please add your +1 👍 to let us know you have encountered this
Status: RESOLVED
Overview:
Users of CDK in any language other than TS/JS cannot use values that return an instance of a deprecated class.
Affected Versions
Any version greater or equal to 2.41.0
Complete Error Message:
144 | jsii.errors.JavaScriptError:
145 | **@jsii/kernel.SerializationError: Of static property aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel**
146 | ├── 🛑 Failing value is an instance of aws-cdk-lib.aws_apigateway.EmptyModel
147 | │ EmptyModel { modelId: 'Empty' }
148 | ╰── 🔍 Failure reason(s):
149 | ╰─ Type 'aws-cdk-lib.aws_apigateway.EmptyModel' not found
150 | at Object.process (/tmp/tmpdm_u1x99/lib/program.js:6194:19)Workaround:
Case by case workarounds, such as ones described here.
You could also pin the jsii client libraries to 1.68.0:
Python
jsii==1.68.0Java
<dependency>
<groupId>software.amazon.jsii</groupId>
<artifactId>jsii-runtime</artifactId>
<version>1.68.0</version>
</dependency>Golang
require (
github.com/aws/jsii-runtime-go v1.68.0
)C#
Amazon.JSII.Runtime==1.68.0Solution:
TBD
Related Issues:
Original report
Describe the bug
I have a CDK v2 project in python and the "cdk synth" command is now suddenly failing. Below is the error from CodeBuild log, this just suddenly started after my latest commit triggered a build of my CDK Pipeline where I was using CDK 2.39.0. I also am now seeing the synth step failing on my local dev environment as well and installing CDK 2.40.0 did not seem to resolve the error either.
2022/09/02 17:42:50 Running command cdk synth
144 | jsii.errors.JavaScriptError:
145 | @jsii/kernel.SerializationError: Of static property aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel
146 | ├── 🛑 Failing value is an instance of aws-cdk-lib.aws_apigateway.EmptyModel
147 | │ EmptyModel { modelId: 'Empty' }
148 | ╰── 🔍 Failure reason(s):
149 | ╰─ Type 'aws-cdk-lib.aws_apigateway.EmptyModel' not found
150 | at Object.process (/tmp/tmpdm_u1x99/lib/program.js:6194:19)
...
158 | The above exception was the direct cause of the following exception:
159 |
160 | Traceback (most recent call last):
161 | File "/codebuild/output/src197530525/src/app.py", line 10, in
162 | NextgenPipeline(app, "Nextgen", env=pipeline_env)
...
192 | raise JSIIError(resp.error) from JavaScriptError(resp.stack)
193 | jsii.errors.JSIIError: Of static property aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel
194 | ├── 🛑 Failing value is an instance of aws-cdk-lib.aws_apigateway.EmptyModel
195 | │ EmptyModel { modelId: 'Empty' }
196 | ╰── 🔍 Failure reason(s):
197 | ╰─ Type 'aws-cdk-lib.aws_apigateway.EmptyModel' not found
198 |
Expected Behavior
I am expecting the "cdk synth" command to complete successfully.
Current Behavior
Currently the "cdk synth" step is failing to complete. Below is the full log from CodeBuild during my pipeline execution:
[Container] 2022/09/02 17:41:50 Waiting for agent ping
[Container] 2022/09/02 17:41:51 Waiting for DOWNLOAD_SOURCE
[Container] 2022/09/02 17:41:51 Phase is DOWNLOAD_SOURCE
[Container] 2022/09/02 17:41:51 CODEBUILD_SRC_DIR=/codebuild/output/src197530525/src
[Container] 2022/09/02 17:41:51 YAML location is /codebuild/readonly/buildspec.yml
[Container] 2022/09/02 17:41:51 Setting HTTP client timeout to higher timeout for S3 source
[Container] 2022/09/02 17:41:51 Processing environment variables
[Container] 2022/09/02 17:41:52 No runtime version selected in buildspec.
[Container] 2022/09/02 17:41:54 Moving to directory /codebuild/output/src197530525/src
[Container] 2022/09/02 17:41:54 Configuring ssm agent with target id: codebuild:358e2836-7acb-4c8c-9210-9bb6f58d3d69
[Container] 2022/09/02 17:41:54 Successfully updated ssm agent configuration
[Container] 2022/09/02 17:41:54 Registering with agent
[Container] 2022/09/02 17:41:54 Phases found in YAML: 1
[Container] 2022/09/02 17:41:54 BUILD: 4 commands
[Container] 2022/09/02 17:41:54 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
[Container] 2022/09/02 17:41:54 Phase context status code: Message:
[Container] 2022/09/02 17:41:54 Entering phase INSTALL
[Container] 2022/09/02 17:41:54 Phase complete: INSTALL State: SUCCEEDED
[Container] 2022/09/02 17:41:54 Phase context status code: Message:
[Container] 2022/09/02 17:41:54 Entering phase PRE_BUILD
[Container] 2022/09/02 17:41:54 Phase complete: PRE_BUILD State: SUCCEEDED
[Container] 2022/09/02 17:41:54 Phase context status code: Message:
[Container] 2022/09/02 17:41:54 Entering phase BUILD
[Container] 2022/09/02 17:41:54 Running command npm install -g aws-cdk
/usr/local/bin/cdk -> /usr/local/lib/node_modules/aws-cdk/bin/cdk
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/aws-cdk/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
- aws-cdk@2.40.0
added 1 package from 1 contributor in 2.842s
[Container] 2022/09/02 17:42:09 Running command python -m pip install -r requirements.txt
Collecting aws-cdk-lib==2.40.0
Downloading aws_cdk_lib-2.40.0-py3-none-any.whl (61.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.9/61.9 MB 38.0 MB/s eta 0:00:00
Collecting constructs<11.0.0,>=10.0.0
Downloading constructs-10.1.94-py3-none-any.whl (56 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.4/56.4 kB 4.2 MB/s eta 0:00:00
Collecting pytest==6.2.5
Downloading pytest-6.2.5-py3-none-any.whl (280 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 280.7/280.7 kB 28.9 MB/s eta 0:00:00
Collecting syrupy==1.7.0
Downloading syrupy-1.7.0-py3-none-any.whl (38 kB)
Collecting boto3==1.20.32
Downloading boto3-1.20.32-py3-none-any.whl (131 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.8/131.8 kB 9.6 MB/s eta 0:00:00
Collecting aws-lambda-powertools==1.26.0
Downloading aws_lambda_powertools-1.26.0-py3-none-any.whl (173 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 173.6/173.6 kB 16.4 MB/s eta 0:00:00
Collecting requests==2.28.1
Downloading requests-2.28.1-py3-none-any.whl (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 4.9 MB/s eta 0:00:00
Collecting beautifulsoup4==4.11.1
Downloading beautifulsoup4-4.11.1-py3-none-any.whl (128 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.2/128.2 kB 12.7 MB/s eta 0:00:00
Collecting publication>=0.0.3
Downloading publication-0.0.3-py2.py3-none-any.whl (7.7 kB)
Collecting jsii<2.0.0,>=1.66.0
Downloading jsii-1.67.0-py3-none-any.whl (547 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 547.4/547.4 kB 35.6 MB/s eta 0:00:00
Collecting typeguard~=2.13.3
Downloading typeguard-2.13.3-py3-none-any.whl (17 kB)
Collecting pluggy<2.0,>=0.12
Downloading pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting py>=1.8.2
Downloading py-1.11.0-py2.py3-none-any.whl (98 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.7/98.7 kB 9.6 MB/s eta 0:00:00
Requirement already satisfied: attrs>=19.2.0 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from pytest==6.2.5->-r requirements.txt (line 3)) (21.4.0)
Collecting toml
Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting packaging
Downloading packaging-21.3-py3-none-any.whl (40 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 kB 13.4 MB/s eta 0:00:00
Collecting iniconfig
Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting colored<2.0.0,>=1.3.92
Downloading colored-1.4.3.tar.gz (29 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting s3transfer<0.6.0,>=0.5.0
Downloading s3transfer-0.5.2-py3-none-any.whl (79 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 2.9 MB/s eta 0:00:00
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from boto3==1.20.32->-r requirements.txt (line 5)) (0.10.0)
Collecting botocore<1.24.0,>=1.23.32
Downloading botocore-1.23.54-py3-none-any.whl (8.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.5/8.5 MB 93.0 MB/s eta 0:00:00
Collecting aws-xray-sdk<3.0.0,>=2.8.0
Downloading aws_xray_sdk-2.10.0-py2.py3-none-any.whl (99 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.7/99.7 kB 29.3 MB/s eta 0:00:00
Collecting fastjsonschema<3.0.0,>=2.14.5
Downloading fastjsonschema-2.16.1-py3-none-any.whl (22 kB)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from requests==2.28.1->-r requirements.txt (line 7)) (1.26.9)
Requirement already satisfied: certifi>=2017.4.17 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from requests==2.28.1->-r requirements.txt (line 7)) (2022.6.15)
Collecting charset-normalizer<3,>=2
Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Requirement already satisfied: idna<4,>=2.5 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from requests==2.28.1->-r requirements.txt (line 7)) (2.10)
Collecting soupsieve>1.2
Downloading soupsieve-2.3.2.post1-py3-none-any.whl (37 kB)
Collecting wrapt
Downloading wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.8/77.8 kB 2.4 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from botocore<1.24.0,>=1.23.32->boto3==1.20.32->-r requirements.txt (line 5)) (2.8.2)
Requirement already satisfied: typing-extensions<5.0,>=3.7 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from jsii<2.0.0,>=1.66.0->aws-cdk-lib==2.40.0->-r requirements.txt (line 1)) (3.10.0.0)
Collecting cattrs<22.2,>=1.8
Downloading cattrs-22.1.0-py3-none-any.whl (33 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.3/98.3 kB 1.3 MB/s eta 0:00:00
Collecting exceptiongroup
Downloading exceptiongroup-1.0.0rc9-py3-none-any.whl (12 kB)
Requirement already satisfied: six>=1.5 in /root/.pyenv/versions/3.9.12/lib/python3.9/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.24.0,>=1.23.32->boto3==1.20.32->-r requirements.txt (line 5)) (1.16.0)
Building wheels for collected packages: colored
Building wheel for colored (setup.py): started
Building wheel for colored (setup.py): finished with status 'done'
Created wheel for colored: filename=colored-1.4.3-py3-none-any.whl size=14342 sha256=6b92539979906f58ed82424ca1b92018f3ca76c7974f9757a2cf67589e284e6d
Stored in directory: /root/.cache/pip/wheels/31/7b/79/7cf37e7860649bd09d359bfbbde9084a103a35eedd8f12a592
Successfully built colored
Installing collected packages: publication, iniconfig, fastjsonschema, colored, wrapt, typeguard, toml, soupsieve, pyparsing, py, pluggy, exceptiongroup, charset-normalizer, requests, packaging, cattrs, botocore, beautifulsoup4, s3transfer, pytest, jsii, aws-xray-sdk, syrupy, constructs, boto3, aws-lambda-powertools, aws-cdk-lib
Attempting uninstall: requests
Found existing installation: requests 2.25.1
Uninstalling requests-2.25.1:
Successfully uninstalled requests-2.25.1
Attempting uninstall: botocore
Found existing installation: botocore 1.27.18
Uninstalling botocore-1.27.18:
Successfully uninstalled botocore-1.27.18
Attempting uninstall: s3transfer
Found existing installation: s3transfer 0.6.0
Uninstalling s3transfer-0.6.0:
Successfully uninstalled s3transfer-0.6.0
Attempting uninstall: boto3
Found existing installation: boto3 1.24.18
Uninstalling boto3-1.24.18:
Successfully uninstalled boto3-1.24.18
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
aws-sam-cli 1.52.0 requires requests==2.25.1, but you have requests 2.28.1 which is incompatible.
Successfully installed aws-cdk-lib-2.40.0 aws-lambda-powertools-1.26.0 aws-xray-sdk-2.10.0 beautifulsoup4-4.11.1 boto3-1.20.32 botocore-1.23.54 cattrs-22.1.0 charset-normalizer-2.1.1 colored-1.4.3 constructs-10.1.94 exceptiongroup-1.0.0rc9 fastjsonschema-2.16.1 iniconfig-1.1.1 jsii-1.67.0 packaging-21.3 pluggy-1.0.0 publication-0.0.3 py-1.11.0 pyparsing-3.0.9 pytest-6.2.5 requests-2.28.1 s3transfer-0.5.2 soupsieve-2.3.2.post1 syrupy-1.7.0 toml-0.10.2 typeguard-2.13.3 wrapt-1.14.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[notice] A new release of pip available: 22.1.2 -> 22.2.2
[notice] To update, run: pip install --upgrade pip
[Container] 2022/09/02 17:42:50 Running command cdk synth
jsii.errors.JavaScriptError:
@jsii/kernel.SerializationError: Of static property aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel
├── 🛑 Failing value is an instance of aws-cdk-lib.aws_apigateway.EmptyModel
│ EmptyModel { modelId: 'Empty' }
╰── 🔍 Failure reason(s):
╰─ Type 'aws-cdk-lib.aws_apigateway.EmptyModel' not found
at Object.process (/tmp/tmpdm_u1x99/lib/program.js:6194:19)
at exports.Kernel._fromSandbox (/tmp/tmpdm_u1x99/lib/program.js:5837:29)
at exports.Kernel.sget (/tmp/tmpdm_u1x99/lib/program.js:5413:34)
at exports.KernelHost.processRequest (/tmp/tmpdm_u1x99/lib/program.js:6618:36)
at exports.KernelHost.run (/tmp/tmpdm_u1x99/lib/program.js:6592:48)
at Immediate._onImmediate (/tmp/tmpdm_u1x99/lib/program.js:6593:46)
at processImmediate (internal/timers.js:464:21)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/codebuild/output/src197530525/src/app.py", line 10, in
NextgenPipeline(app, "Nextgen", env=pipeline_env)
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_runtime.py", line 86, in call
inst = super().call(*args, **kwargs)
File "/codebuild/output/src197530525/src/nextgen/build_pipeline/nextgen_pipeline.py", line 64, in init
wave.add_stage(DeployDev(self, "Dev"))
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_runtime.py", line 86, in call
inst = super().call(*args, **kwargs)
File "/codebuild/output/src197530525/src/nextgen/build_pipeline/stages/deploy_dev.py", line 50, in init
cloudsearch(self)
File "/codebuild/output/src197530525/src/nextgen/build_pipeline/stages/deploy_dev.py", line 90, in cloudsearch
CloudSearch(
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_runtime.py", line 86, in call
inst = super().call(*args, **kwargs)
File "/codebuild/output/src197530525/src/nextgen/stacks/cloudsearch.py", line 61, in init
CloudSearchAPI(
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_runtime.py", line 86, in call
inst = super().call(*args, **kwargs)
File "/codebuild/output/src197530525/src/nextgen/constructs/cloudsearch/cloudsearch_api.py", line 163, in init
response_models={"application/json": apigateway.Model.EMPTY_MODEL},
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/python.py", line 16, in get
return self.fget.get(obj, klass)()
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/aws_cdk/aws_apigateway/init.py", line 19608, in EMPTY_MODEL
return typing.cast(IModel, jsii.sget(cls, "EMPTY_MODEL"))
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_kernel/init.py", line 148, in wrapped
return _recursize_dereference(kernel, fn(kernel, *args, **kwargs))
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_kernel/init.py", line 368, in sget
return self.provider.sget(
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_kernel/providers/process.py", line 356, in sget
return self._process.send(request, GetResponse)
File "/root/.pyenv/versions/3.9.12/lib/python3.9/site-packages/jsii/_kernel/providers/process.py", line 329, in send
raise JSIIError(resp.error) from JavaScriptError(resp.stack)
jsii.errors.JSIIError: Of static property aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL: Unable to serialize value as aws-cdk-lib.aws_apigateway.IModel
├── 🛑 Failing value is an instance of aws-cdk-lib.aws_apigateway.EmptyModel
│ EmptyModel { modelId: 'Empty' }
╰── 🔍 Failure reason(s):
╰─ Type 'aws-cdk-lib.aws_apigateway.EmptyModel' not found
Subprocess exited with error 1
[Container] 2022/09/02 17:42:58 Command did not exit successfully cdk synth exit status 1
[Container] 2022/09/02 17:42:58 Phase complete: BUILD State: FAILED
[Container] 2022/09/02 17:42:58 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: cdk synth. Reason: exit status 1
[Container] 2022/09/02 17:42:58 Entering phase POST_BUILD
[Container] 2022/09/02 17:42:58 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2022/09/02 17:42:58 Phase context status code: Message:
[Container] 2022/09/02 17:42:58 Expanding base directory path: cdk.out
[Container] 2022/09/02 17:42:58 Assembling file list
[Container] 2022/09/02 17:42:58 Expanding cdk.out
[Container] 2022/09/02 17:42:58 Expanding file paths for base directory cdk.out
[Container] 2022/09/02 17:42:58 Assembling file list
[Container] 2022/09/02 17:42:58 Expanding */
[Container] 2022/09/02 17:42:58 Found 26 file(s)
[Container] 2022/09/02 17:42:58 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED
[Container] 2022/09/02 17:42:58 Phase context status code: Message:
Reproduction Steps
run the "cdk synth" command on a CDK project that is using aws-cdk-lib.aws_apigateway.Model.EMPTY_MODEL
Possible Solution
No response
Additional Information/Context
No response
CDK CLI Version
2.40.0
Framework Version
No response
Node.js Version
16.15.0
OS
Mac OS Montery (12.4)
Language
Python
Language Version
3.10.2
Other information
No response