fix(error-tracking): widen the view recordings date filter - #76412
fix(error-tracking): widen the view recordings date filter#76412posthog[bot] wants to merge 1 commit into
Conversation
The "View recordings" menu item and button on the error issue page built a replay date filter pinned to [first_seen, last_seen]. For a single-occurrence issue those are the same instant, giving a zero-width window and an empty recordings list. Even for multi-occurrence issues, recordings match on session start time, so a session that began before the first exception fired fell outside the window too. Add `getIssueReplayDateRange` to pad both ends by an hour, matching the padding pattern already used elsewhere in this scene (`getNarrowDateRange`), and use it at both call sites so they can't drift apart again. Generated-By: PostHog Code Task-Id: b0c6f366-72f9-4a60-9bc2-9181ca25807d
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
🤖 CI report✅ Bundle size — 🟢 -71 B (-0.0%)Uncompressed size of every built Total: 65.51 MiB · 🟢 -71 B (-0.0%) No file changed by more than 1000 B. Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report ✅ Eager graph — within budgetHow much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy
🟢 Largest files eagerly shipped from
|
| Size | File |
|---|---|
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
| 6.3 KiB | ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js |
| 4.5 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 3.9 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.4 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.3 KiB | src/RootErrorBoundary.tsx |
| 912 B | ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js |
| 789 B | src/scenes/ChunkLoadErrorBoundary.tsx |
| 762 B | src/index.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 285.6 KiB | ../node_modules/.pnpm/posthog-js@1.409.5/node_modules/posthog-js/dist/rrweb.js |
| 267.7 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 235.5 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 231.5 KiB | ../node_modules/.pnpm/posthog-js@1.409.5/node_modules/posthog-js/dist/module.js |
| 154.3 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 105.3 KiB | src/lib/api.ts |
| 94.7 KiB | ../packages/quill/packages/quill/dist/index.js |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 90.6 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Toolbar bundle — eager 2.19 MiB within budget
What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.
| Metric | Size | Δ vs base | Budget |
|---|---|---|---|
| Eager (shipped) entry + static imports |
2.19 MiB · 17 files | no change | ████░░░░░░ 38.3% of 5.72 MiB |
| Deferred (lazy) | 2.08 MiB · 33 files | no change | n/a — loads on demand |
Loader dist/toolbar.js |
1.1 KiB | no change | █░░░░░░░░░ 5.8% of 19.5 KiB |
Largest eagerly-shipped chunks
| Size | File |
|---|---|
| 718.3 KiB | dist/toolbar/toolbar-app-FT4UJ3IP.css |
| 551.4 KiB | dist/toolbar/chunk-chunk-AGSGCCBT.js |
| 484.6 KiB | dist/toolbar/chunk-chunk-T44C2V5C.js |
| 133.6 KiB | dist/toolbar/chunk-chunk-KBLX73CM.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-T5KY5WYR.js |
| 71.0 KiB | dist/toolbar/toolbar-app-FKUW2FOM.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-27JL52RE.js |
| 35.6 KiB | dist/toolbar/chunk-chunk-3JVI3ZTF.js |
| 20.9 KiB | dist/toolbar/chunk-chunk-HJ3ZJMTU.js |
| 12.2 KiB | dist/toolbar/chunk-chunk-PIK3PADE.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
✅ Dist folder size — 🔺 +1.8 KiB (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1381.30 MiB · 🔺 +1.8 KiB (+0.0%)
Problem
date_from: first_seenanddate_to: last_seen.[first_seen, last_seen].Changes
getIssueReplayDateRange(firstSeen, lastSeen)inproducts/error_tracking/frontend/utils.ts, padding both ends of the window by an hour so it can't collapse to zero width and catches sessions that started before the exception fired.IssueMetadata.tsx(endOf('minute')) and ingetNarrowDateRangein the same scene file, which never made it to these two buttons.ErrorTrackingIssueScene.tsxnow go through the same helper, so they can't drift apart again.How did you test this code?
getIssueReplayDateRangeunit tests inproducts/error_tracking/frontend/utils.test.tscovering: a single-occurrence issue (previously zero-width), a multi-occurrence issue where date_from still needs padding, and the last_seen-missing/predates-first_seen fallback.pnpm --filter=@posthog/frontend exec jest products/error_tracking/frontend/utils.test.ts– all 12 tests pass.pnpm --filter=@posthog/frontend typescript:check– no new errors introduced by this change (pre-existing unrelated errors in the repo from a missing@posthog/quill-primitivespackage).Automatic notifications
Docs update
N/A – no documented workflow changed.
🤖 Agent context
Autonomy: Fully autonomous
I (Claude) investigated an inbox report describing the empty-recordings symptom, confirmed the root cause by reading
ErrorTrackingIssueScene.tsxand comparing it against the padding pattern already used inIssueMetadata.tsx, and fixed both call sites with a shared helper rather than patching each inline. Invoked/writing-testsbefore adding test cases and/writing-code-commentsbefore writing the comment on the new helper.Created with PostHog from an inbox report