Firebase cloud function exits with code 16 what is error code 16 and where can I find more info?
Apparently and after investigation, the error means something like: Headers already sent
.
I had somewhere in my code a response.send()
with headers and then, later on, I was sending another response.
Would be great if the Firebase team could elaborate with these issues and provide some documentation instead of leaving us blindfolded (to my understanding)
An improperly terminated cloud function is the likely cause.
Here's what the firebase docs say:
Resolve functions that perform asynchronous processing (also known as "background functions") by returning a JavaScript promise.
Terminate HTTP functions with
res.redirect()
,res.send()
, orres.end()
.Terminate a synchronous function with a
return
; statement.
In short, watch out for floating promises and/or multiple calls to res
or response
.
I've also seen the Process exited with code 16
occur in tandem with:
Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
at GoogleAuth.getApplicationDefaultAsync (/srv/functions/node_modules/google-auth-library/build/src/auth/googleauth.js:161:19)
at process._tickCallback (internal/process/next_tick.js:68:7)