Repository filter on Project Repositories page intermittently shows "We couldn't find any matching repositories" due to frontend race condition

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 10.2.4
    • Component/s: Repositories
    • 1
    • Severity 3 - Minor
    • 1

      Issue Summary

      When users filter/search repositories on the Project Repositories page (/projects/<PROJECT>/repos), Bitbucket Data Center intermittently fails to display matching repositories, showing the message:

      "We couldn't find any matching repositories"

      The issue is intermittent and caused by an asynchronous frontend race condition between two concurrently dispatched REST requests with different pagination parameters (start=0 and start=100).

      Steps to Reproduce

      • Navigate to any Project's Repositories list view: https://<bitbucket-url>/projects/<PROJECT>/repos
      • Enter the name of an existing active repository in the Filter repositories input field.
      • Observe the network traffic in Browser Developer Tools (Network tab) and the rendered UI.
      • Repeat the filter/search action multiple times to observe the intermittent behavior.

      Expected Results

      • The frontend renders the filtered repository matching the search query.
      • A single REST request or properly coordinated paginated requests return and display the matching record.

      Actual Results

      • The UI intermittently displays: "We couldn't find any matching repositories".
      • The user can still access the repository directly via its direct URL (/projects/<PROJECT>/repos/<REPO_SLUG>).
      • When typing into the repository filter, the frontend sends two concurrent REST calls:
        Request 1: GET /rest/search/latest/projects/<PROJECT>/repos?archived=ACTIVE&filter=<REPO_NAME>&avatarSize=48&start=0&limit=100 (Returns size: 1 with the repository in values)
        Request 2: GET /rest/search/latest/projects/<PROJECT>/repos?archived=ACTIVE&filter=<REPO_NAME>&avatarSize=48&start=100&limit=100 (Returns size: 0 with empty values)

      This causes a race condition depending on network timing:

      • If start=100 completes before start=0, the UI renders the repository correctly.
      • If start=0 completes before start=100, the empty response from start=100 overwrites the frontend state, showing "We couldn't find any matching repositories".

      Workaround

      Currently, there is no known workaround for this behavior.

              Assignee:
              Carlos Sanchez Rosa
              Reporter:
              Bharat Malviya
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: