PostHog Silently Ignores Epoch Timestamps, Records Events at Ingestion Time
When sending historical events to PostHog's capture API via epoch timestamps instead of ISO 8601 format, the platform silently applies the ingestion time rather than the intended historical timestamp, causing backfilled data to appear as a present-day spike. PostHog's documentation specifies ISO 8601 format for the timestamp field, but the API accepts epoch numbers without error and returns a 200 OK status, masking the problem. This behavior contrasts with Amplitude, which requires milliseconds-since-epoch, meaning pipelines shared between the two platforms can produce incorrect results if timestamp fields are reused. An open-source linter called Pixellint can detect this and other PostHog payload issues — including missing distinct_id, event name, or api_key fields — before a request is sent. For accurate historical backfills, developers must use ISO 8601 timestamps and include the historical_migration: true flag in batch requests to prevent PostHog from flagging the volume as anomalous.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in