aws-samples / aws-samples/aws-lambda-extensions

Unable to debug with SAM local invoke in Node.js example

Open
#66 7 comments 7 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
487
Forks
144
PR merge metrics
No merged PRs in 30d

Description

Hi all,
in `nodejs-example-extension` example for Node.js platform something during registration phase brakes the debugger when runs locally on VS Code using `sam local invoke --port 6767 ...` on a Lambda that includes this layer.
The following is a snap of the debug logs when launched from VS Code:
```
START RequestId: 05da599b-f76d-494e-905b-bead9860f186 Version: $LATEST
nodejs-example-extension launching extension
Debugger listening on ws://0.0.0.0:6767/95282789-af6d-4c40-b544-b1d70e0650c2
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
hello from extension
register
extensionId 0e16eae5-5e84-4b22-a204-c54424793f69
next
Starting inspector on 0.0.0.0:6767 failed: address already in use
invoke
next
...
```
notice the **Starting inspector on 0.0.0.0:6767 failed: address already in use** error line in logs, after that all set breakpoints are ignored and it's impossible to debug every Lambdas.

this is the VS Code debug task setup:
```
{
"name": "lambda_with_example_layer",
"type": "pwa-node",
"request": "attach",
"address": "localhost",
"port": 6767,
"localRoot": "${workspaceFolder}/lambda_with_example_layer",
"sourceMaps": true,
"remoteRoot": "/var/task",
"protocol": "inspector",
"stopOnEntry": false,
"skipFiles": [
"/**"
]
}
```

Is there any debugger/SAM/Docker configuration that i missed? Or is something else deeper in the layer execution flows that broke debugging in a container with SAM local?

Contributor guide

Open the contributing guide

Research direction

Start with the `nodejs-example-extension` example and reproduce the VS Code attach configuration using `sam local invoke --port 6767`. Read the registration-phase logs around `register`, `next`, and the inspector startup, then determine why the inspector reports port 6767 as already in use. Done means local invocations attach successfully and breakpoints are honored for the Lambda.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.