rancher / dashboard

The Rancher UI
https://rancher.com
Apache License 2.0
453 stars 257 forks source link

Charts: Performing actions on the charts filter result in network errors #12064

Open yonasberhe23 opened 6 days ago

yonasberhe23 commented 6 days ago

Setup

Describe the bug Performing actions on the charts filter results in network errors.

Response: {"type":"error","links":{},"code":"ServerError","message":"Operation cannot be fulfilled on preferences.management.cattle.io \"hide-repos\": the object has been modified; please apply your changes to the latest version and try again","status":500,"type":"error"}

To Reproduce

  1. go to local cluster > apps > charts
  2. select the Charts filter dropdown (repositories)
  3. deselect 'All'
  4. select 'All' (results in error)
  5. deselect 'All' (results in error)
  6. update select in the namespace filter in the header nav (the chart filter selection changes)

Result Performing actions on the charts filter results in network errors.

Expected Result Performing actions on the charts filter should not result in network errors.

Screenshots

Screenshot 2024-09-27 at 9 04 48 PM

https://github.com/user-attachments/assets/3ce2c50a-4879-44f7-95de-db15574ac368

Additional context

gaktive commented 2 days ago

Whoever repros this, take a look to see if this actually points to a backend issue somehow based on the 500. However, upon discussion with @nwmac, this should be a 409.

@yonasberhe23 can you confirm this is a regression? This looks Vue3 at first but based on the prior versions, this may have been around a while.

Long term: we should re-evaluate our preferences mechanism since it's prone to conflicts during synchronization. Maybe this needs to go into the webworker.

yonasberhe23 commented 2 days ago

Ah, 409 makes sense with that error message. Confirmed after retest; I see it in v2.10, v2.9.2 and v2.8.7

gaktive commented 1 day ago

OK, I'll push this out for now since this has been around for a while. 2.11 seems reasonable with a backport target to 2.10.x at least