Skip to content

Fix Add Data wizard Step 3 "Verify now" error recovery loop#2359

Open
Copilot wants to merge 13 commits intomainfrom
copilot/fix-add-data-wizard-ux-issues
Open

Fix Add Data wizard Step 3 "Verify now" error recovery loop#2359
Copilot wants to merge 13 commits intomainfrom
copilot/fix-add-data-wizard-ux-issues

Conversation

Copy link
Contributor

Copilot AI commented Mar 10, 2026

Clicking "Verify now" on Step 3 called onBack(), dropping the user to Step 2 with no feedback. The user had to guess what happened and click "Continue" to return.

Changes

  • AddDataStepSuccess.tsx: "Verify now" now triggers verification.startPolling() / checkNow() and renders IngestionVerificationPanel inline on Step 3
  • AddDataPage.tsx: Passes verification, connectionAvailable, signalExpectation to Step 3

Local verifyClicked state gates the inline panel so that verification auto-started from Step 2 doesn't replace the initial Alert on arrival at Step 3.

Fixes #2358


The body of this PR is automatically managed by the workflow runtime.


The body of this PR is automatically managed by the Update PR Body workflow.

When "Verify now" is clicked on Step 3, verification polling now starts
inline on the same page via IngestionVerificationPanel instead of
dropping the user back to Step 2. Local state tracks whether the user
explicitly triggered verification from Step 3, so verification that
auto-started in Step 2 does not interfere with the initial Step 3 view.

Co-authored-by: strawgate <6384545+strawgate@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Add Data Wizard UX evaluation findings Fix Add Data wizard Step 3 "Verify now" error recovery loop Mar 11, 2026
@strawgate strawgate marked this pull request as ready for review March 11, 2026 04:39
@github-actions
Copy link
Contributor

github-actions bot commented Mar 11, 2026

✅ UI Smoke Test Review — c1eed1d

🎭 Smoke Test Results

Status: ✅ All passed

Total Passed Failed Flaky Skipped
11 11 0 0 0
Individual test results
Status Test Duration
onboarding user reaches the connect entrypoint from the welcome screen 675ms
add data entrypoint exposes the technology picker and step 2 1653ms
metrics user connects, picks a metric, and gets a line chart-ready result 2089ms
traces user opens a trace and pivots from service map context into Query Lab 2178ms
security-focused user validates auth tab switching before submitting credentials 665ms
ops user confirms connection guardrails and can reset back to the landing state 2927ms
query lab preserves query text and results after navigating to Console and back 2478ms
logs explorer route is available and runs a logs query 2211ms
logs landing page dimension drill-down opens query lab with selected filter 2095ms
task manager, ILM, and templates pages render with headings 2093ms
pages have no axe accessibility violations 15617ms

📸 Screenshot Preflight

Result: ✅ Clean — no errors detected

No console errors, page errors, or UI alerts detected.

💡 Recommendations

  • ✨ All smoke tests pass and no UI errors detected. Ready for review.

📎 Full diagnostics and screenshots: workflow run

@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds three props—verification, connectionAvailable, and signalExpectation—to the AddDataStepSuccess component and wires them through AddDataPage.tsx. AddDataStepSuccess now tracks local verifyClicked state, computes showInlineVerification, and exposes handleVerifyNow to start/reset verification flows. The component conditionally renders an IngestionVerificationPanel (with relevant props and autoStart) and disables/hides the external "Verify now" CTA when inline verification is active. Imports and the component props signature were updated to accept the new verification-related props.

Possibly related PRs

  • #1933: Modifies AddDataStepSuccess verification UI and flow, adding verify-related props and wiring to IngestionVerificationPanel.
  • #1459: Updates AddDataPage ingestion verification wiring and related verification API/props, including passing verification state downstream.
  • #1420: Wires ingestion verification state/props through AddDataPage into downstream components such as AddDataStepSuccess.

Suggested labels

little_boom

🚥 Pre-merge checks | ✅ 1 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Linked Issues check ❓ Inconclusive PR addresses the primary objective from #2358: clicking 'Verify now' on Step 3 now triggers inline verification panel instead of navigating back to Step 2. Secondary accessibility contrast issue remains unaddressed. Verify that the inline error/troubleshooting state properly displays when verification fails. Confirm the secondary accessibility defect (text.secondary contrast in Dark Mode) is tracked separately or scheduled for follow-up.
✅ Passed checks (1 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed All changes align with fixing the Step 3 error recovery loop. Props added (verification, connectionAvailable, signalExpectation) are necessary for verification workflow. No extraneous modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch copilot/fix-add-data-wizard-ux-issues
  • 🛠️ Update Documentation: Commit on current branch
  • 🛠️ Update Documentation: Create PR

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]

This comment was marked as resolved.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 11, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://elastic.github.io/ai-github-actions-playground/pr-preview/pr-2359/

Built to branch gh-pages at 2026-03-11 06:04 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions
Copy link
Contributor

QA Exploration Findings

I have completed the interactive testing and screenshot evaluation across multiple pages (Dashboards, Add Data, Cluster Overview) and viewports.

  1. UX Defect (Error Recovery Loop) — Verified Fixed ✅

    • Location: Add Data Wizard -> Step 3 (Java APM setup)
    • What I tried: Navigated to Java APM setup, clicked "Continue" on Step 2, and then clicked "Verify now" on Step 3 (without sending any data).
    • What I expected: An inline verification panel or error message on Step 3 without dropping back to Step 2.
    • What happened: The IngestionVerificationPanel correctly rendered inline on Step 3. It showed a "Checking..." state and then gracefully surfaced the warning alert: "No meaningful ingestion changes detected yet. Make sure the collector is running...". The error recovery loop bug is resolved!
  2. Accessibility Defect (Dark Mode Contrast) — Still Present ❌

    • Location: Add Data main page (#/add-data) and Sidebar navigation.
    • What I expected: Text using text.secondary (like tile descriptions and sidebar headers "DATA", "WORKSPACE", etc.) should have sufficient contrast against the dark background.
    • What happened: The text remains difficult to read in dark mode due to poor contrast. This issue from the original UX evaluation was not addressed in this PR.
    • Evidence: Refer to the pre-generated screenshot at peek/screenshots/all/dark/add-data.png.

No visual layout regressions or toolbar height mismatches (inputs/comboboxes are consistently 40px) were found during the exploration. No unexpected console errors occurred during the wizard steps.


What is this? | From workflow: Explore: Pull Request

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

github-actions bot and others added 2 commits March 11, 2026 04:59
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Contributor

Addressed the unresolved review feedback with a surgical fix.

  • ✅ Fixed thread PRRT_kwDORVGiRc5zfBLx via code change in peek/src/components/addData/AddDataStepSuccess.tsx.
  • No threads required a reply-only response.
  • Pushed commit 2229172d7 to copilot/fix-add-data-wizard-ux-issues.
  • Resolved the addressed review thread.
Validation run
  • cd peek && npm ci --no-audit --no-fund
  • cd peek && npm run lint
  • cd peek && npm run typecheck
  • cd peek && npm run test:unit ✅ (256 files, 2956 tests passed)
  • cd peek && npm run build

Also observed PR check runs; relevant repo checks were green (no straightforward CI failure to fix).


What is this? | From workflow: Address PR Review Feedback

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

coderabbitai[bot]

This comment was marked as resolved.

github-actions bot and others added 2 commits March 11, 2026 05:22
Handle verification error state by resetting and restarting polling, and disable Verify now when the Elasticsearch connection is unavailable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Contributor

Addressed the unresolved review feedback with a minimal code change in peek/src/components/addData/AddDataStepSuccess.tsx.

  • Resolved thread PRRT_kwDORVGiRc5zfDD0 by handling verification.status === "error" in handleVerifyNow with resetVerification() + startPolling() so retry can recover baseline/polling.
  • Resolved thread PRRT_kwDORVGiRc5zfNnq by disabling the Verify now button when connectionAvailable is false (guard remains in handler).
  • No reply-only threads were needed.
Validation
  • cd peek && npm ci --no-audit --no-fund
  • cd peek && npm run lint
  • cd peek && npm run typecheck
  • cd peek && npx tsc --noEmit
  • cd peek && npm run test:unit ✅ (256 files, 2956 tests passed)

Also checked PR checks and comments; no straightforward external CI failure required additional code changes in this run.


What is this? | From workflow: Address PR Review Feedback

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

coderabbitai[bot]

This comment was marked as resolved.

github-actions bot and others added 2 commits March 11, 2026 05:37
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Contributor

Addressed the remaining unresolved review thread with a surgical code change.

  • ✅ Fixed thread PRRT_kwDORVGiRc5zfdGn via code update in peek/src/components/addData/AddDataStepSuccess.tsx.
  • ℹ️ No inline reply-only threads in this pass.
Tests run
  • cd peek && npm ci
  • make lint BASE=HEAD~1
  • cd peek && npm run typecheck
  • Pre-commit related tests (auto-run by hook):
    • tests/component/App.test.tsx ✅ (19 passed)
    • tests/component/AddDataPage.test.tsx ✅ (40 passed)

What is this? | From workflow: Address PR Review Feedback

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@peek/src/components/addData/AddDataStepSuccess.tsx`:
- Around line 81-85: The showInlineVerification boolean currently hides the
inline panel when verification.status === "error"; change its logic so the panel
remains visible for the "error" state (i.e., include "error" as an allowed
status) by updating the condition that builds showInlineVerification (which
references verifyClicked and verification.status) so it does not exclude
"error", and apply the same change to the duplicate logic around the other
occurrence (lines with the same condition near the IngestionVerificationPanel
usage) so the IngestionVerificationPanel stays mounted for error states while
leaving any separate retry CTA handling unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 22e96797-116e-4717-ac2c-cadc29e67694

📥 Commits

Reviewing files that changed from the base of the PR and between e61a498 and 472405d.

📒 Files selected for processing (1)
  • peek/src/components/addData/AddDataStepSuccess.tsx

github-actions bot and others added 2 commits March 11, 2026 05:49
Keep Step 3 inline ingestion verification mounted for the error state so users can see troubleshooting context after a failed Verify now action.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
peek/src/components/addData/AddDataStepSuccess.tsx (1)

100-100: 🧹 Nitpick | 🔵 Trivial

text.secondary contrast on Dark Mode flagged in linked issue.

Line 100 uses color="text.secondary". Per issue #2358's secondary objective, this palette token has insufficient contrast in Dark Mode. Not strictly blocking this PR, but noting it's still unaddressed.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@peek/src/components/addData/AddDataStepSuccess.tsx` at line 100, In
AddDataStepSuccess.tsx the Typography element uses color="text.secondary" which
fails contrast in dark mode; update the component (the Typography instance in
AddDataStepSuccess) to avoid text.secondary on dark by either switching to
color="text.primary" or applying a theme-aware override (e.g., useTheme or sx)
so that in dark mode it uses theme.palette.text.primary while keeping
text.secondary in light mode; modify the Typography props accordingly to ensure
sufficient contrast across themes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@peek/src/components/addData/AddDataStepSuccess.tsx`:
- Around line 81-82: Add a retry CTA inside the IngestionVerificationPanel when
verification.status === "error" so users can re-attempt verification without
closing the panel: update the panel to render a "Retry" button in its error
state that calls the same verification trigger used by the outer "Verify now"
button (the existing handler tied to verifyClicked/verification flow), and
expose an onRetry prop on IngestionVerificationPanel if needed so
AddDataStepSuccess can pass the handler; ensure the button is shown only when
verification.status === "error" and reuses the existing verification logic
rather than duplicating behavior.

---

Outside diff comments:
In `@peek/src/components/addData/AddDataStepSuccess.tsx`:
- Line 100: In AddDataStepSuccess.tsx the Typography element uses
color="text.secondary" which fails contrast in dark mode; update the component
(the Typography instance in AddDataStepSuccess) to avoid text.secondary on dark
by either switching to color="text.primary" or applying a theme-aware override
(e.g., useTheme or sx) so that in dark mode it uses theme.palette.text.primary
while keeping text.secondary in light mode; modify the Typography props
accordingly to ensure sufficient contrast across themes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3dc37b8a-01f1-442f-b7a6-e0266ca7066d

📥 Commits

Reviewing files that changed from the base of the PR and between 472405d and 648b140.

📒 Files selected for processing (1)
  • peek/src/components/addData/AddDataStepSuccess.tsx

github-actions bot and others added 2 commits March 11, 2026 05:59
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Contributor

Implemented a small follow-up fix for Step 3 verification error recovery and pushed it to this PR.

Addressed review threads with code changes

  • PRRT_kwDORVGiRc5zfjdp
  • PRRT_kwDORVGiRc5zfrFR

Change made:

  • In peek/src/components/addData/AddDataStepSuccess.tsx, when inline verification is shown and verification.status === "error", we now render an inline Verify now retry button that reuses handleVerifyNow. This keeps retry available without leaving Step 3.

Replied instead of fixing

  • None.
Validation run
  • cd peek && npm ci --quiet
  • make lint ✅ (note: changed-file detection against main reported fatal: bad revision 'main' in this CI context, then skipped oxfmt/oxlint and completed successfully)
  • make build
  • Pre-commit hooks also ran staged-file checks and related unit tests:
    • tests/component/App.test.tsx
    • tests/component/AddDataPage.test.tsx

What is this? | From workflow: Address PR Review Feedback

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

@github-actions github-actions bot mentioned this pull request Mar 11, 2026
@github-actions
Copy link
Contributor

I have explored the UI interactively and reviewed the screenshots to check for layout issues, visual regressions, and broken interactions.

Testing performed:

  • Connected to Elasticsearch (`(localhost/redacted) using the "No Auth" option.
  • Navigated through the #dashboards, #add-data, and #cluster-overview pages.
  • specifically tested the "Add Data" wizard for Kubernetes (OTel Collector), confirming that the Step 3 inline ingestion verification works as expected and the "Verify now" error loop is resolved.
  • Toggled "Dark/Light Mode" from the settings menu.

Findings:
No visual regressions, layout issues, or unexpected console errors were found across the pages tested. The "Add Data" step 3 verification panel correctly renders inline and automatically begins checking. Everything looks good to go!


What is this? | From workflow: Explore: Pull Request

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[explore-add-data-alex] Add Data Wizard UX Evaluation Findings

2 participants