Skip to content

fix(dashboard): show queued state before empty state during refresh - #69749

Merged
MattPua merged 4 commits into
masterfrom
posthog-code/fix-dashboard-refresh-queued-state
Jul 9, 2026
Merged

fix(dashboard): show queued state before empty state during refresh#69749
MattPua merged 4 commits into
masterfrom
posthog-code/fix-dashboard-refresh-queued-state

Conversation

@MattPua

@MattPua MattPua commented Jul 9, 2026

Copy link
Copy Markdown
Member

Problem

Dashboard SQL insights briefly show "No matching events" while queued for refresh, before flipping to the loading state once the refresh actually starts. Easy to misread as "no data" rather than "not refreshed yet".

Reported in support ticket #2707.

Changes

refreshDashboardItems resets refreshStatus to {} the moment it dispatches, then did await breakpoint() before re-marking stale tiles as queued: true. That await opened a real render window where tiles had no refresh status at all, so InsightCard fell through to the query's default empty state instead of showing the queued/loading state.

Moved the setRefreshTilesTotal/setRefreshStatuses calls to before the await breakpoint(), closing the gap.

How did you test this code?

Read through dashboardLogic.tsx's refresh listener and InsightCard.tsx's empty/loading state branching to confirm the render gap and that the reorder closes it. Did not manually reproduce in a running instance.

Docs update

N/A - no user-facing API or config change.

🤖 Agent context

Autonomy: Fully autonomous

Investigated and fixed via PostHog Code, based on support ticket #2707. Traced the bug from InsightCard.tsx's loading/empty branching back to dashboardLogic.tsx's refreshStatus reducer and the refreshDashboardItems listener, then closed the race between the reducer's reset and the listener's await breakpoint().


Created with PostHog Code

tiles briefly lost their queued status in the render gap between the
refreshDashboardItems reset and the re-mark, so they showed the
query's default empty state instead of loading while queued

Generated-By: PostHog Code
Task-Id: 966d80aa-fd45-4279-9af7-e20222c29044
@MattPua MattPua added the stamphog Request AI approval (no full review) label Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 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)
💤 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 4fb6f70 · box box-4be1a5b5dbb3 · ready in 464s (push → usable) · build log · rebuilds on every push, torn down on close

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team July 9, 2026 16:15
@greptile-apps

greptile-apps Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "fix(dashboard): show queued state before..." | Re-trigger Greptile

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small, low-risk UI state-ordering fix within the author's own team; no risky territory touched and no unresolved concerns.

  • Author wrote 0% of the modified lines and has 101 merged PRs in these paths (familiarity MODERATE).
  • 👍 on the PR from greptile-apps[bot], hex-security-app[bot].
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 12L, 1F substantive — within ceiling
tier T1-agent / T1a-trivial (12L, 1F, single-area, fix)
stamphog 2.0.0b3 .stamphog/policy.yml @ 280e388 · reviewed head 32afe2b

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Bundle size — no change

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

Total: 69.86 MiB · no change

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.20 MiB · 22 files no change ███░░░░░░░ 28.0% of 4.29 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.06 MiB · 2,956 files no change █████████░ 87.2% 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
668 B src/index.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
277.1 KiB ../node_modules/.pnpm/posthog-js@1.398.2/node_modules/posthog-js/dist/rrweb.js
266.9 KiB ../node_modules/.pnpm/@posthog+icons@0.37.4_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
224.6 KiB src/taxonomy/core-filter-definitions-by-group.json
213.6 KiB ../node_modules/.pnpm/posthog-js@1.398.2/node_modules/posthog-js/dist/module.js
164.0 KiB src/queries/validators.js
154.0 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.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.5 KiB ../node_modules/.pnpm/@tiptap+core@3.20.1_@tiptap+pm@3.20.1/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

⚠️ Dist folder size — 🔺 +687 B (+0.0%)

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

Total: 1433.63 MiB · 🔺 +687 B (+0.0%)

Playwright — all passed

All tests passed.

View test results →

@trunk-io

trunk-io Bot commented Jul 9, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@posthog

posthog Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

👋 Visual changes detected for this PR.

Review and approve in PostHog Visual Review

If these changes are unexpected, they may be caused by a flaky test or a broken snapshot on master. Don't approve — rerun the job or wait for a fix.

@MattPua
MattPua merged commit 4dcebba into master Jul 9, 2026
193 checks passed
@MattPua
MattPua deleted the posthog-code/fix-dashboard-refresh-queued-state branch July 9, 2026 18:24
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 9, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-09 19:09 UTC Run
prod-us ✅ Deployed 2026-07-09 19:23 UTC Run
prod-eu ✅ Deployed 2026-07-09 19:27 UTC Run

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

Labels

stamphog Request AI approval (no full review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant