diegomura / diegomura/react-pdf
RuntimeError with WebAssembly in @react-pdf/yoga on Node.js Server
- Dominant language
- TypeScript
- Stars
- 16.8k
- Forks
- 1.3k
- Avg merge
- 5h 6m
- Merged PRs (30d)
- 52
Description
Hello,
I've encountered a critical issue while using @react-pdf/renderer in a Node.js Express server environment. The server crashes with a RuntimeError related to WebAssembly memory allocation when attempting to generate PDFs. The error message is as follows:
```javascript
RuntimeError: Aborted(RangeError: WebAssembly.instantiate(): Out of memory: wasm memory). Build with -sASSERTIONS for more info.
at w (/usr/app/node_modules/yoga-layout/binaries/wasm-async-node.js:14:73)
at /usr/app/node_modules/yoga-layout/binaries/wasm-async-node.js:62:60
```
This error suggests that the WebAssembly module within yoga-layout, which is a dependency of @react-pdf/renderer, is running out of memory.
**To Reproduce**
1. Set up a basic Express server that uses @react-pdf/renderer to generate PDFs.
2. Trigger the PDF generation endpoint with the necessary data.
3. The server crashes with the above RuntimeError after a few successful PDF generations.
Expected Behavior:
The PDF generation should complete successfully without causing a server crash or running out of WebAssembly memory.
**Actual Behavior:**
The server crashes with a RuntimeError indicating that WebAssembly ran out of memory.
**Additional Context:**
The issue seems to occur after generating multiple PDFs, suggesting a potential memory leak or insufficient memory allocation for WebAssembly in the yoga-layout module.
Reducing the complexity of the PDF layout temporarily mitigates the issue but does not solve it entirely.
I would appreciate any insights or suggestions on how to resolve this issue. If there are any known workarounds or if additional information is needed, please let me know.
**Environment:**
Node.js version: v16.18.1
Express version: ^4.18.2
@react-pdf/layout": "3.10.3",
@react-pdf/renderer": "3.3.4",
Operating System: docker image
Thank you for your time and assistance.
Contributor guide
Assessment
This issue has not been assessed yet.