parse-community / parse-community/parse-server-push-adapter
Parse Server crash on FCM network error using http/2
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 96
- Forks
- 108
- PR merge metrics
- No merged PRs in 30d
Description
New Issue Checklist
- I am not disclosing a vulnerability.
- I am not just asking a question.
- I have searched through existing issues.
- I can reproduce the issue with the latest versions of Parse Server and the Parse Server Push Adapter.
Issue Description
The http/2 implementation in firebase-admin throws on network errors instead of handling them, which lets them propagate to the node process, which eventually crashes the process.
- For
GOAWAYerrors a fix has been implemented with https://github.com/parse-community/parse-server-push-adapter/issues/340. - For other network errors such as
ECONNRESETthere is no easy remediation.
The proper solution for any network error is to fix https://github.com/firebase/firebase-admin-node/issues/2789, for example via an event listener.
Steps to reproduce
This issue occurs on network error events, such as ECONNRESET.
Actual Outcome
Unhandled error crashes app.
Expected Outcome
Error should be handled by the firebase-admin.
Workaround
- Use the older version HTTP/1.1 by setting
fcmEnableLegacyHttpTransport: truein your push options. - Catch the error in a global Node process error handler.
Environment
Client
- Parse Server Push Adapter version:
6.8.0
Server
- Parse Server version:
7.3.0
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the firebase-admin HTTP/2 implementation and the network-error discussion in Firebase issue 2789, focusing on ECONNRESET events and the event-listener approach mentioned here. Reproduce the failure with the FCM transport enabled; done means network errors are handled without an unhandled error crashing the Node process.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- firebase, javascript, node.js
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100