I have a problem where my code works fine locally but not when uploaded to netlify.
No error messages in:
netlify > function log > graphql (shows my proper debug output), no errors
devtools debug is fine/clean, no errors
The failing / not running part of my code is inside the .then()
on functions like
fetch.then()
which i had in a service
or db.user.create().then()
which i have in a function
I also have .catch()
but no output from there either.
Questions:
Why does this work fine locally but not on netlify?
Do i have to do everything with await? Are the functions terminate before the promises/callbacks resolve?
Is there somekind of global node output on netlify?
peterp
April 9, 2020, 4:49am
2
Hey there,
Uncaught exceptions should be visible via the GraphQL response, could you share your deployed project’s URL with me so that I could take a look?
(You can DM it to me.)
1 Like
Thanks so much for helping. I’m curious to learn how to debug.
Public sample
+I gave you private access on github, you’ll probably die on the inside as I have the API key in there etc.
As above:
from the Homepage i call services/prices.js
which triggers and update of prices.
This update i moved to api/src/functions/updatePricesForSymbol.js
But maybe now i have to await the db.price.create()?
1 Like
I followed the hunch to await
everything, including doing for ...
instead of .foreach( => )
after doing this it started working. I hope I don’t run into the 10s max runtime now
I still don’t know how to debug this mor.
Especially since it ran fine locally, but not deployed and i guess we always want to be as close to the deployment as possible.
That’s true - someone just opened an issue that mentioned serving a production build: Feature Request: yarn rw serve · Issue #604 · redwoodjs/redwood · GitHub
Since we’re deploying to lambda there are two things that might cause issues:
A package that you’re relying on, on the api side, is using a dynamic import. This won’t work since Zip-it-and-ship-it (from netlify) bundles all the files together.
That there’s some sort of runtime error - we’ll start thinking of a better way to get these exceptions and logs into a single place.