Skip to content

[Bug]: No "Retry Analysis" action is shown when a job fails — users must manually re-enter the repository URL #2121

@Payal-mak

Description

@Payal-mak

Bug Description

When a repository analysis job enters a failed or stalled state, the UI provides no recovery action for the user. There is no "Retry" button, no re-trigger option, and no guidance on what to do next. The user must navigate back to the dashboard, manually re-enter the repository URL, and resubmit — with no indication that this
is even the correct fix.

This is a UX/reliability issue that exists independent of the root cause of the failure. Even if issues #422 and the timeout bug are resolved, a retry affordance is necessary for any future failures, transient errors, or GitHub API timeouts.

Steps to Reproduce

  1. Navigate to /dashboard and submit a GitHub repository URL
  2. Allow the analysis job to fail or stall (see [Bug]: Repository analysis gets stuck at "0% — Queued" and never completes #422 for reproduction steps)
  3. Observe the analysis status page
  4. No retry, re-run, or "go back" CTA is visible anywhere on the page

Expected Behavior

When a job's status is FAILED (or when the timeout state from the related bug is triggered):

  • A "Retry Analysis" button should appear inline on the status/results page
  • Clicking it should re-trigger the analysis for the same repository without requiring the user to navigate away or re-enter the URL
  • The UI should reset to the initial loading state and begin polling again
  • If the retry itself fails, the error message should persist and not loop silently

Actual Behavior

  • No retry button or recovery CTA is shown in any failure state
  • User is left on a broken loading screen with no guidance
  • The only recovery path is a full manual re-submission from the dashboard

Proposed Fix

  • In the analysis status page component, add a conditional render:
    • If job.status === 'FAILED' or client-side timeout is reached → show an error state with a "Retry Analysis" button
    • The retry action should call the same analysis trigger endpoint with the existing repositoryId or URL (no re-entry needed)
    • After clicking retry, reset the UI state and resume polling
  • No new pages or modals required — the button renders inline within the existing status card

Acceptance Criteria

  • A "Retry Analysis" button is displayed when job status is FAILED
  • Clicking retry re-triggers the analysis for the same repository
  • UI resets to loading state and resumes polling after retry is triggered
  • If retry also fails, the error message is shown again (no silent loop)
  • No new pages or modals are introduced — retry action is inline
  • Behavior works on Vercel
  • Connects naturally with the timeout error state proposed in the related timeout/fallback issue

Related Issues


I'd like to work on this as a GSSoC 2026 contributor.
This pairs well with the timeout fallback issue — happy to tackle both together or separately based on maintainer preference.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggssoc-2026Issue appears to be GSSoC-eligible.infraInfrastructure, CI, deployment, or tooling work.uiThis is a ui change

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions