Skip to content

fix(error-tracking): handle missing initial event - #71067

Merged
hpouillot merged 1 commit into
masterfrom
posthog-code/fix-error-tracking-empty-initial-event
Jul 15, 2026
Merged

fix(error-tracking): handle missing initial event#71067
hpouillot merged 1 commit into
masterfrom
posthog-code/fix-error-tracking-empty-initial-event

Conversation

@hpouillot

Copy link
Copy Markdown
Contributor

Problem

Opening an error tracking issue can trigger an initial-event query that returns no rows. The scene assumes the first row always exists and crashes instead of rendering the issue without a selected event.

Why: The query result is legitimately empty when no event matches the narrow timestamp window, so the frontend needs to handle that response as an empty state.

Changes

  • Read the initial event with optional access and return null when the query has no matching row or event.
  • Add a logic test covering an empty initial-event query result.

How did you test this code?

  • Added a focused logic regression test that catches the empty query result crash.
  • Ran git diff --check successfully.
  • I could not run Jest or the TypeScript check because this environment does not have the repository Node dependencies, hogli, or flox installed.

👉 Stay up-to-date with PostHog coding conventions for a smoother review.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Docs update

No documentation update is needed. This is a defensive fix that does not change the documented workflow or API.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Codex CLI investigated and implemented this change using the /investigating-error-issue and /writing-tests skills. The fix keeps the existing loader behavior and only handles the API's valid empty-result case instead of introducing a fallback query or changing timestamp selection.


Created with PostHog Code

Safely handle empty issue query results when loading the initial event and cover the regression with a focused logic test.

Generated-By: PostHog Code
Task-Id: 5e7bfcac-3a31-48cb-9148-db207e80307c
@hpouillot hpouillot self-assigned this Jul 15, 2026
@hpouillot hpouillot added the skip-inkeep-docs Use this label to skip an Inkeep docs PR in posthog.com label Jul 15, 2026 — with PostHog
@github-actions

Copy link
Copy Markdown
Contributor

Hey @hpouillot! 👋

It looks like your git author email on this PR isn't your @posthog.com address (hpouillot@gmail.com). Since you're on the PostHog team, it's worth pointing your local git author email at your @posthog.com address. Why it matters:

  • Consistent work identity in git history — internal tooling that attributes commits to team members keys off your @posthog.com address.
  • Keeps team contributions easy to tell apart from external community ones when scanning history.

You can fix it for this repo with:

git config user.email "you@posthog.com"

Or set it globally with git config --global user.email "you@posthog.com". No need to redo this PR — just a nudge for next time. 🙂

@hpouillot
hpouillot requested review from a team, ablaszkiewicz and cat-ph July 15, 2026 13:21
@hpouillot
hpouillot marked this pull request as ready for review July 15, 2026 13:21
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
🛠️ Admin inspect & debug state in hogland
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit c08c7be · box box-fa08d19e7308 · ready in 987s (push → usable) · build log · rebuilds on every push, torn down on close

@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "fix(error-tracking): handle missing init..." | Re-trigger Greptile

@hpouillot
hpouillot enabled auto-merge (squash) July 15, 2026 13:24
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Bundle size — 🟢 -25 B (-0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 64.80 MiB · 🟢 -25 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 budget

How 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 import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.22 MiB · 22 files no change ███░░░░░░░ 28.4% of 4.29 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.15 MiB · 2,979 files 🟢 -25 B (-0.0%) █████████░ 88.1% of 9.25 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx

Largest files eagerly shipped from src/index.tsx
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
281.1 KiB ../node_modules/.pnpm/posthog-js@1.401.0/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
222.7 KiB ../node_modules/.pnpm/posthog-js@1.401.0/node_modules/posthog-js/dist/module.js
164.0 KiB src/queries/validators.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
106.1 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
92.7 KiB ../packages/quill/packages/quill/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

Dist folder size — 🟢 -506 B (-0.0%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1308.72 MiB · 🟢 -506 B (-0.0%)

@hpouillot
hpouillot merged commit 335a4d6 into master Jul 15, 2026
270 of 325 checks passed
@hpouillot
hpouillot deleted the posthog-code/fix-error-tracking-empty-initial-event branch July 15, 2026 13:48
@trunk-io

trunk-io Bot commented Jul 15, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@deployment-status-posthog

deployment-status-posthog Bot commented Jul 15, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-15 14:19 UTC Run
prod-us ✅ Deployed 2026-07-15 14:45 UTC Run
prod-eu ✅ Deployed 2026-07-15 14:46 UTC Run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-inkeep-docs Use this label to skip an Inkeep docs PR in posthog.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants