Repository navigation
fix!: drop only the invalid event, not its whole batch - #1052
Merged
Merged
Conversation
eli-r-ph
marked this pull request as ready for review
October 13, 2026 05:27
eli-r-ph
force-pushed
the
v1-wire-hygiene
branch
2 times, most recently
from
October 14, 2026 03:48
ff2fed1 to
d205df8
Compare
eli-r-ph
force-pushed
the
v1-sync-main-7.68
branch
from
October 14, 2026 03:48
c475dff to
5ede78a
Compare
dustinbyrne
reviewed
Oct 20, 2026
dustinbyrne
left a comment
Contributor
There was a problem hiding this comment.
AI-assisted review.
The invalid-event isolation changes are well scoped, and existing CI is green. One correction remains: module setup overrides the new personal-key disabled state. There are also two optional migration-guide wording corrections. Findings apply only to #1052’s diff against #1051; inspected downstream heads do not resolve them.
Validation: source inspection; the regression sketch is unexecuted.
eli-r-ph
force-pushed
the
v1-sync-main-7.68
branch
from
October 20, 2026 17:07
f894e9f to
d0913f4
Compare
An event with a missing, empty or non-string name, or one that cannot be serialized (for example with NaN), is dropped alone instead of failing the whole batch at capture. A property key JSON cannot represent is dropped from its event. The analytics per-event limit is capture's 10 MiB request limit, since capture reports an event over its per-event limit in the response. A personal API key disables the client like an empty key, and logs no longer include event content or invalid timestamp values. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…t_utils Co-Authored-By: Claude Opus 5.5 <[email protected]>
…wo guide claims - setup() re-derived disabled from the key being non-empty, which re-enabled a client given a phx_ key on every module call. - The guide now says finite float keys are stringified (NaN keys drop the event) and that only the SDK's own log lines drop event content. Co-Authored-By: Claude Opus 5.5 <[email protected]>
eli-r-ph
force-pushed
the
v1-wire-hygiene
branch
from
October 20, 2026 17:16
d205df8 to
cc37ff4
Compare
Co-Authored-By: Claude Opus 5.5 <[email protected]>
before_send can set any value, and capture v1 rejects the whole request for a non-string distinct_id. The SDK now drops that event locally with one warning per reason, and never converts the value or makes up an ID. Co-Authored-By: Claude Opus 5.5 <[email protected]>
eli-r-ph
force-pushed
the
v1-wire-hygiene
branch
from
October 21, 2026 00:44
5d5c13a to
c9b2f6c
Compare
turnipdabeets
approved these changes
Oct 22, 2026
3 of 4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
💡 Motivation and Context
Based on
v1(#1051 is merged). Capture v1 rejects the whole request for some invalid events, such as one containingNaNor a non-string name, so one bad event loses every event sent with it. This PR drops only the bad event, raises the analytics size limit to capture's own, and keeps event content out of logs.Changes
NaNorInfinityis dropped alone instead of breaking the request.phx_...) disables the client with one error log, like an empty key.setup()no longer re-enables it on each module call.💚 How did you test it?
before_send, and check that the rest of the batch is still sent.NaNand event-name tests fail with the change reverted.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Written with Claude Code under the direction of the assignee.
🤖 Generated with Claude Code