Skill 76 · Instrument Error Tracking
Subchapter 76.18
references/node.mdMarkdown4 KBView on GitHub
AI agents: this is one page from PostHog’s docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt (opens in a new tab)
1
Required
Install the PostHog Node.js library using your package manager:
npm install posthog-nodeyarn add posthog-nodepnpm add posthog-nodebun add posthog-node2
Required
Initialize the PostHog client with your project token:
Node.js
import { PostHog } from 'posthog-node'
const client = new PostHog(
'<ph_project_token>',
{
host: 'https://us.i.posthog.com'
}
)3
Recommended
Once installed, you can manually send events to test your integration:
Node.js
client.capture({
distinctId: 'distinct_id_of_the_user',
event: 'event_name',
properties: {
property1: 'value',
property2: 'value',
},
})4
Recommended
You can enable exception autocapture when initializing the PostHog client to automatically capture uncaught exceptions and unhandled rejections in your Node app.
Node.js
import { PostHog } from 'posthog-node'
const client = new PostHog(
'<ph_project_token>',
{ host: 'https://us.i.posthog.com', enableExceptionAutocapture: true }
)If you are using the Express framework, you will need to import and call with your PostHog client and Express app. This is because Express handles uncaught exceptions internally meaning exception autocapture will not work by default.
5
Optional
If you need to manually capture exceptions, you can do so by calling the captureException method:
Node.js
posthog.captureException(e, 'user_distinct_id', additionalProperties)This is helpful if you’ve built your own error handling logic or want to capture exceptions normally handled by the framework.
Recommended
Confirm events are being sent to PostHog
Before proceeding, let’s make sure exception events are being captured and sent to PostHog. You should see events appear in the activity feed.

6
Required
Great, you’re capturing exceptions! If you serve minified bundles, the next step is to upload source maps to generate accurate stack traces.
Let’s continue to the next section.
Ask PostHog AI
HelpfulCould be better
setupExpressErrorHandlerserver.ts
import express from 'express'
import { PostHog, setupExpressErrorHandler } from 'posthog-node'
const app = express()
const posthog = new PostHog(POSTHOG_PROJECT_TOKEN)
setupExpressErrorHandler(posthog, app)Note: Error tracking requires access the file system to process stack traces. Some providers, like Cloudflare Workers, do not support Node.js runtime APIs by default and need to be included as per their documentation (opens in a new tab).