-
Notifications
You must be signed in to change notification settings - Fork 133
Description
Is there an existing issue for this?
- I have searched the existing issues
What happened?
📌 Issue Overview
While reviewing the repository indexing flow, I noticed that a repository can get permanently stuck in the pending state if the indexing process is interrupted (e.g. backend crash or network failure).
This results in users being blocked from re-indexing the repository, even though no indexing job may actually be running.
🎯 Expected Behavior
The user should be able to re-index the repo if the previous indexing is stuck in "pending" state.
🚨 Actual Behavior
The indexing flow in RepoService.index_repo() behaves as follows:
-
status = completed: Indexing is considered done. -
status = pending:
Backend returns : “Repository indexing in progress. Please wait.” -
status = failed: Backend resets state to pending and re-triggers/analyze_repo.
For a new repository :
A database row is inserted with status = pending and /analyze_repo is called.
If the backend crashes or the request never completes after this point, the repository remains in pending. Any subsequent indexing request will hit case (2) and be blocked indefinitely.
💡 Suggested Improvements
Treat pending as a retryable state, similar to failed.
- Allow re-indexing when
status = pending. - Reset state to pending.
- Clear any previous error.
- Re-trigger
/analyze_repo.
Record
- I agree to follow this project's Code of Conduct
- I want to work on this issue