Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After middleware transiently not completed before lambda ends #622

Open
akawalsky opened this issue Jan 13, 2023 · 0 comments
Open

After middleware transiently not completed before lambda ends #622

akawalsky opened this issue Jan 13, 2023 · 0 comments

Comments

@akawalsky
Copy link

I recently ran into an issue where code that runs after a call to res.json in a given route is not guaranteed to be run before a lambda ends.

My use-case is as follows -

  1. PUT /posts/1
  2. handle database update in route
  3. return updated record to client using res.json
  4. as an after middleware, send event specifying something was changed to AWS SQS

In a regular express server, I expect that the code in step 4 would complete successfully. However, I believe that serverless-express is ending the invocation of the lambda before that code has a chance to complete under certain circumstances.

To be a little more clear, here is a set of logs that represents a successful invocation -

START RequestId: d884deec-393a-40d2-93b3-f302d8f0c7fa Version: $LATEST
queuing change event
change event successfully queued
END RequestId: d884deec-393a-40d2-93b3-f302d8f0c7fa

and here is a set of logs that represents an unsuccessful invocation -

START RequestId: 0a1fc1e7-c8a8-40b0-bf80-076ce4c922e6 Version: $LATEST
queuing change event
END RequestId: 0a1fc1e7-c8a8-40b0-bf80-076ce4c922e6

As you can see, under some circumstances, the lambda invocation ends before the process has a chance to complete writing to SQS.

Is it possible that this use-case is not well supported in serverless-express? Let me know if more information is needed or if I am obviously doing something wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant