Troubleshooting
Common issues and how to fix them.
Port Already in Use
Error: EADDRINUSE: address already in use :::3800
Another process is using port 3800. Either stop it or use a different port:
# Find what's using port 3800
lsof -i :3800
# Use a different port
npx errpulse start --port 4000Remember to update the SDK's serverUrl to match the new port:
// Node.js
init({ serverUrl: "http://localhost:4000" });
// React
<ErrPulseProvider endpoint="http://localhost:4000">CORS Errors from Frontend SDK
Error in browser console: Access to fetch at 'http://localhost:3800/api/events' from origin 'http://localhost:3000' has been blocked by CORS policy
By default, ErrPulse allows all origins (corsOrigin: true). If you're seeing CORS errors:
- Check the server is running — CORS errors sometimes mask a "server not reachable" error
- Check the endpoint URL — make sure the
endpointprop inErrPulseProvidermatches the actual server URL - Check for proxies — if your dev server proxies requests, the origin might be different than expected
Events Not Appearing in Dashboard
If you're sending events but they don't show up in the dashboard:
Check the server is running:
bashnpx errpulse statusCheck the SDK endpoint matches the server:
ts// These must match // Server: npx errpulse start --port 3800 // SDK: init({ serverUrl: "http://localhost:3800" })Check the SDK is enabled:
ts// Make sure enabled isn't set to false init({ enabled: true });Check the sample rate:
ts// A sampleRate of 0.1 means only 10% of events are captured init({ sampleRate: 1.0 }); // Capture everythingCheck the beforeSend callback isn't dropping events:
tsinit({ beforeSend: (event) => { // Returning null drops the event return event; // Make sure you're returning the event }, });Check the browser network tab — look for failed requests to
/api/eventsor/api/events/batch
WebSocket Disconnections
The dashboard connects to ws://localhost:3800/ws for real-time updates. If updates stop appearing:
- Refresh the dashboard page — the WebSocket will reconnect
- Check the server is still running —
npx errpulse status - Check for network issues — VPN, firewalls, or proxy servers can interfere with WebSocket connections
Memory Warnings
If you're seeing memory_warning events:
Check the threshold — the default is 512MB. If your app normally uses more, increase it:
tsinit({ memoryThresholdMB: 1024 });Disable memory monitoring if you don't need it:
tsinit({ monitorMemory: false });Investigate the memory usage — the warning means your app's heap usage exceeded the threshold, which could indicate a memory leak
Database File Permissions
Error: SQLITE_CANTOPEN: unable to open database file
The server can't create or access the database at ~/.errpulse/errpulse.db:
Check the directory exists:
bashls -la ~/.errpulse/Check permissions:
bash# The directory needs read/write access chmod 755 ~/.errpulse/ chmod 644 ~/.errpulse/errpulse.dbCheck disk space:
bashdf -h ~
SDK Errors Don't Crash Your App
By design, ErrPulse SDK errors never crash your application. If the SDK encounters an internal error (e.g., can't reach the server), it logs a warning to console.warn and continues silently. Your app will keep running even if ErrPulse is completely unreachable.
Still Stuck?
If you're still having issues:
- Check the GitHub Issues for known problems
- Open a new issue with:
- ErrPulse version
- Node.js version
- Steps to reproduce
- Error messages and stack traces