Skip to content

UI: Workflows list Phase/Labels filters not correctly reflected in URL #15213

@fruitriin

Description

@fruitriin

Pre-requisites

  • I have double-checked my configuration
  • I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
  • I have searched existing issues and could not find a match for this bug
  • I'd like to contribute the fix myself (see contributing guide)

What happened? What did you expect to happen?

When using multi-value filters (Phase, Labels) on the Workflows list page, the URL query parameters are not updated correctly:

  1. Selecting multiple phases (e.g., Running + Failed) only shows the last one in the URL
  2. Unchecking a filter doesn't remove it from the URL
  3. Labels and other multi-value parameters have the same issue

I expected the URL to accurately reflect all selected filters, for example ?phase=Running&phase=Failed when both are checked.

Version(s)

:latest cf74935

Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflow that uses private images.

  1. Navigate to the Workflows list page
  2. Check "Running" in the Phase filter → URL shows ?phase=Running
  3. Also check "Failed" → Expected: ?phase=Running&phase=Failed, Actual: ?phase=Failed only
  4. Uncheck "Running" → phase=Running remains in the URL

Root Cause

Two issues were identified:

In workflows-list.tsx, the useEffect inherits all existing query parameters and appends new values without clearing old ones.

In history.ts, the shared historyUrl function uses set() instead of append() when processing extraSearchParams, causing multiple values with the same key to be overwritten.

Proposed Fix

  1. In workflows-list.tsx: Start with empty URLSearchParams and explicitly preserve only non-managed parameters
  2. In history.ts: Change set() to append() for extraSearchParams processing

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions