Repository navigation
fix: keep a registered personless setting off identity events - #1067
Conversation
A registered `$process_person_profile: false`, or a `process_person_profile` option a wrapper registers, no longer applies to `$identify`, `$create_alias`, `$merge_dangerously`, `$groupidentify`, `$set` and `$set_once`. PostHog drops those events with person processing off. A value passed on the call or set in `beforeSend` still applies.
posthog-ios Compliance ReportDate: 2026-11-13T19:42:35.861922+00:00 ✅ All Tests Passed!234/234 tests passed Capture_V1 Tests✅ 106/106 tests passed View Details
Capture_Ai_V1 Tests✅ 111/111 tests passed View Details
Feature_Flags Tests✅ 17/17 tests passed View Details
|
dustinbyrne
left a comment
There was a problem hiding this comment.
The filtering restores identity/profile operations under inherited personless registration while preserving explicit call and hook overrides. Equivalent base/head tests confirm the intended change. Two non-blocking notes: synchronize the shared specification and qualify the API docstrings.
AI-assisted review.
|
Flutter on Windows and Linux doesn't pick this up: the Dart core still applies registered options to |
Yes, in PostHog/posthog-flutter#730. |
…tructure Brings in #1067. Its migration-guide change moves into the reordered guide: "Fix identity calls" becomes "Check registered person processing", since a registered `$process_person_profile` no longer reaches identity events. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
💡 Motivation and Context
In 3.x the SDK replaced a registered
$process_person_profilewith its own value, so a registeredfalsedid nothing. In 4.0 it's sent as theprocess_person_profileoption, and it also reached the eventsidentify,alias,groupandsetPersonPropertiessend. PostHog drops identity events with person processing off, so an app that registeredfalsewould silently stop identifying users after upgrading.This matches the rule the server SDKs adopt for their v1 releases (posthog-python#1247, posthog-go#450, posthog-rs#363, posthog-js#5712), and Flutter and KMP pick it up from here.
$identify,$create_alias,$merge_dangerously,$groupidentify,$setand$set_once, the SDK ignores a registered$process_person_profileproperty and aprocess_person_profileoption registered withregisterOptionsForWrapper.beforeSend, still applies.personProfiles = neverstill skips these calls.falsemakes them personless.true. PostHog treats a missing value andtruethe same way.trueon each identity call" workaround with the new rule, and the v4 changeset gets one line.💚 How did you test it?
falsedon't reach$identify,$create_alias,$groupidentifyor$set, while a regular event still getsfalse. Afalsepassed on the call still applies.falsemakes a$setpersonless. It now uses afalseoption on the call instead.📝 Checklist
If releasing new changes
pnpm changesetto generate a changeset file (added a line to the existing 4.0 changeset)🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Written with Claude Code at Anna's direction, as a follow-up to the capture v1 discussion about identity events under a global personless setting. Same event list as the server SDKs. The SDK strips the registered value rather than sending an explicit
true, which keeps the payload of every other identity call unchanged.🤖 Generated with Claude Code