SShortSingh.
Back to feed

PostHog Silently Ignores Epoch Timestamps, Records Events at Ingestion Time

0
·1 views

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.

Read the full story at DEV Community

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

Related stories

0
ProgrammingDEV Community ·

How to Build Variable-Duration Appointment Slot Scheduling in Laravel

A Laravel developer has outlined a gap-based approach to appointment scheduling that handles services of varying durations, such as 15-minute consultations and 60-minute procedures. Rather than generating fixed time slots, the method treats a doctor's availability as a continuous timeline and identifies open gaps between existing bookings. The algorithm retrieves all booked appointments within a working window, calculates the free intervals between them, and checks whether each gap is long enough to fit the requested service. Overlap detection logic ensures that only genuinely available start times are returned, with configurable increment intervals of 5, 10, or 15 minutes. The approach is implemented using Laravel's Eloquent queries and Carbon date handling to iterate through the schedule and build a list of valid slots.

0
ProgrammingDEV Community ·

AWS Community Builder Launches Free Event Management Platform Eventinary

A developer who received AWS credits through the AWS Community Builder program has launched Eventinary, a free event management platform aimed at technical communities. The platform supports the full event lifecycle, including registrations, speaker management, scheduling, digital invitations, and attendee tracking. Built on AWS cloud infrastructure with scalability and reliability in mind, it is designed to handle meetups, workshops, conferences, and hackathons. The creator chose to make it free for community groups, reasoning that organizers should not need to pay for yet another software subscription to run a technical event. The project was driven by a desire to convert the resources received from AWS into tangible value for the broader developer community.

0
ProgrammingDEV Community ·

AWS Community Builder Launches Free Event Management Platform Eventinary

A developer who received AWS credits through the AWS Community Builder program used them to build Eventinary, a free event management platform aimed at technical communities. The platform supports the full event lifecycle, including registrations, speaker management, scheduling, digital invitations, and attendee tracking. It is designed to serve meetups, workshops, conferences, and hackathons without charging organizers a subscription fee. Built on AWS cloud infrastructure with scalability and reliability in mind, the platform is intended as a way for the developer to give back to the community that supported him. The core idea is that resources received as a community builder are reinvested to help other community builders run their events more easily.

0
ProgrammingDEV Community ·

JavaScript Variables Explained: Differences Between let, const, and var

JavaScript offers three ways to declare variables: var, let, and const, each with distinct behaviors. The const keyword prevents reassignment of values, while let and var function similarly but with key differences in scope and redeclaration rules. Unlike let and const, var allows the same variable to be declared multiple times within the same scope. One notable drawback of var is hoisting, where variable declarations are automatically moved to the top of their scope and initialized as undefined before the code runs. Understanding these differences is essential for writing predictable and bug-free JavaScript code.

PostHog Silently Ignores Epoch Timestamps, Records Events at Ingestion Time · ShortSingh