Skip to content

Bug: Invoking a lambda function is giving me an error 'cannot find module' even though module exists #5415

Open
@kkchu791

Description

@kkchu791

After building and starting the local sam server, I'm noticing after I run my lambda GetBlocksByDateRangeFunction, I get this error in the console.

Invalid lambda response received: Invalid API Gateway Response Keys: {'trace', 'errorMessage', 'errorType'} in {'errorType': 'Runtime.ImportModuleError', 'errorMessage': "Error: Cannot find
module 'something'\nRequire stack:\n- /var/runtime/index.mjs", 'trace': ["Runtime.ImportModuleError: Error: Cannot find module 'something'", 'Require stack:', '- /var/runtime/index.mjs', '
at _loadUserApp (file:///var/runtime/index.mjs:997:17)', '    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1032:21)', '    at async start
(file:///var/runtime/index.mjs:1195:23)', '    at async file:///var/runtime/index.mjs:1201:1']}

Steps to reproduce:

I'm not sure how I got this behavior to happen.

Observed result:

2023-06-25 11:58:45,415 | Constructed Event 1.0 to invoke Lambda. Event: {'version': '1.0', 'httpMethod': 'GET', 'body': None, 'resource': '/kevin', 'requestContext': {'resourceId': '123456',
'apiId': '1234567890', 'resourcePath': '/kevin', 'httpMethod': 'GET', 'requestId': '04e1e7ee-a920-462e-ac8d-3589db2ff535', 'accountId': '123456789012', 'stage': 'Prod', 'identity': {'apiKey':
None, 'userArn': None, 'cognitoAuthenticationType': None, 'caller': None, 'userAgent': 'Custom User Agent String', 'user': None, 'cognitoIdentityPoolId': None, 'cognitoAuthenticationProvider':
None, 'sourceIp': '127.0.0.1', 'accountId': None}, 'extendedRequestId': None, 'path': '/kevin', 'protocol': 'HTTP/1.1', 'domainName': '127.0.0.1:3001', 'requestTimeEpoch': 1687719488,
'requestTime': '25/Jun/2023:18:58:08 +0000'}, 'queryStringParameters': None, 'multiValueQueryStringParameters': None, 'headers': {'User-Agent': 'PostmanRuntime/7.32.3', 'Accept': '*/*',
'Postman-Token': '6f0a0ea9-75de-4839-a840-947f37c83019', 'Host': '127.0.0.1:3001', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', 'X-Forwarded-Proto': 'http',
'X-Forwarded-Port': '3001'}, 'multiValueHeaders': {'User-Agent': ['PostmanRuntime/7.32.3'], 'Accept': ['*/*'], 'Postman-Token': ['6f0a0ea9-75de-4839-a840-947f37c83019'], 'Host':
['127.0.0.1:3001'], 'Accept-Encoding': ['gzip, deflate, br'], 'Connection': ['keep-alive'], 'X-Forwarded-Proto': ['http'], 'X-Forwarded-Port': ['3001']}, 'pathParameters': None,
'stageVariables': None, 'path': '/kevin', 'isBase64Encoded': False}
2023-06-25 11:58:45,419 | Found one Lambda function with name 'GetBlocksByDateRangeFunction'
2023-06-25 11:58:45,424 | Invoking src/handlers/something.somethingHandler (nodejs18.x)
2023-06-25 11:58:45,425 | No environment variables found for function 'GetBlocksByDateRangeFunction'
2023-06-25 11:58:45,426 | Resolving code path. Cwd=/Users/kirkchu/pairup/ourtracks-node-api/.aws-sam/build,
CodeUri=/Users/kirkchu/pairup/ourtracks-node-api/.aws-sam/build/GetBlocksByDateRangeFunction
2023-06-25 11:58:45,427 | Resolved absolute path to code is /Users/kirkchu/pairup/ourtracks-node-api/.aws-sam/build/GetBlocksByDateRangeFunction
2023-06-25 11:58:45,427 | Code /Users/kirkchu/pairup/ourtracks-node-api/.aws-sam/build/GetBlocksByDateRangeFunction is not a zip/jar file
2023-06-25 11:58:45,465 | Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64.

2023-06-25 11:58:45,466 | Mounting /Users/kirkchu/pairup/ourtracks-node-api/.aws-sam/build/GetBlocksByDateRangeFunction as /var/task:ro,delegated, inside runtime container
2023-06-25 11:58:46,369 | Starting a timer for 3 seconds for function 'GetBlocksByDateRangeFunction'
START RequestId: 56b06cbc-5a48-4570-886f-f9e589e8b906 Version: $LATEST
2023-06-25T18:58:46.658Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'something'\nRequire stack:\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'something'","Require stack:","- /var/runtime/index.mjs","    at _loadUserApp (file:///var/runtime/index.mjs:997:17)","    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1032:21)","    at async start (file:///var/runtime/index.mjs:1195:23)","    at async file:///var/runtime/index.mjs:1201:1"]}
25 Jun 2023 18:58:46,687 [ERROR] (rapid) Init failed error=Runtime exited with error: exit status 129 InvokeID=
2023-06-25T18:58:46.957Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'something'\nRequire stack:\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'something'","Require stack:","- /var/runtime/index.mjs","    at _loadUserApp (file:///var/runtime/index.mjs:997:17)","    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1032:21)","    at async start (file:///var/runtime/index.mjs:1195:23)","    at async file:///var/runtime/index.mjs:1201:1"]}
END RequestId: 191afcfa-7165-4e0d-a437-efa1c55904c9
REPORT RequestId: 191afcfa-7165-4e0d-a437-efa1c55904c9	Init Duration: 0.94 ms	Duration: 567.76 ms	Billed Duration: 568 ms	Memory Size: 128 MB	Max Memory Used: 128 MB
2023-06-25 11:58:47,270 | Cleaning all decompressed code dirs
2023-06-25 11:58:47,272 | Lambda returned empty body!
2023-06-25 11:58:47,273 | Invalid lambda response received: Invalid API Gateway Response Keys: {'errorType', 'trace', 'errorMessage'} in {'errorType': 'Runtime.ImportModuleError',
'errorMessage': "Error: Cannot find module 'something'\nRequire stack:\n- /var/runtime/index.mjs", 'trace': ["Runtime.ImportModuleError: Error: Cannot find module 'something'", 'Require
stack:', '- /var/runtime/index.mjs', '    at _loadUserApp (file:///var/runtime/index.mjs:997:17)', '    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1032:21)', '
at async start (file:///var/runtime/index.mjs:1195:23)', '    at async file:///var/runtime/index.mjs:1201:1']}

Expected result:

I'm expecting it to not return an error and not to say Cannot Find Module since the module does exist.

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

Mac

  1. OS: MacOS Big Sur
  2. sam --version: SAM CLI, version 1.88.0
  3. AWS region: us-west-2
# Paste the output of `sam --info` here
{
  "version": "1.88.0",
  "system": {
    "python": "3.11.4",
    "os": "macOS-11.2.2-x86_64-i386-64bit"
  },
  "additional_dependencies": {
    "docker_engine": "20.10.23",
    "aws_cdk": "Not available",
    "terraform": "Not available"
  },
  "available_beta_feature_env_vars": [
    "SAM_CLI_BETA_FEATURES",
    "SAM_CLI_BETA_BUILD_PERFORMANCE",
    "SAM_CLI_BETA_TERRAFORM_SUPPORT",
    "SAM_CLI_BETA_RUST_CARGO_LAMBDA"
  ]
}```

`Add --debug flag to command you are running`

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/buildsam build commandarea/local/invokesam local invoke commandblocked/more-info-neededMore info is needed from the requester. If no response in 14 days, it will become stale.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions