We aim to be significantly cheaper than our competitors. In addition to our ridiculously cheap pricing, below are tips to reduce your error tracking costs:
Configure exception autocapture
By default, we capture all unhandled errors and rejections. This can capture more than you need. To reduce which exceptions that are captured, you can configure which types of exceptions are autocaptured in the JS SDK config like this:
{"capture_exceptions": {"capture_unhandled_errors": true,"capture_unhandled_rejections": true,"capture_console_errors": false}}
Alternatively, you can disable exception autocapture completely in your project settings.
Filtering exceptions clientside
The before_send
callback in the JS SDK will drop events if a falsey value is returned. You can provide a before_send
function when initializing the PostHog client to exclude any exception events you do not wish to capture client-side.
posthog.init('<ph_project_api_key>', {before_send: (event) => {if (event.event === "$exception") {const exceptionList = event.properties["$exception_list"] || []const exception = exceptionList.length > 0 ? exceptionList[0] : null;if (exception && exception["$exception_type"] == "UnwantedError") {return false}}return event}})
Issue suppression
If the exceptions you do not wish to capture are all being grouped under the same issue, you can suppress them so that subsequent exception events will not be ingested. Issues can be suppressed from the list or issue page by changing their status to Suppressed.


Quota limiting
Like all PostHog products, you can set a billing limit for error tracking. When a project exceeds this limit, PostHog will no longer capture exception events until your billing period resets.