[PR #24655] [CLOSED] fix: prevent duplicate keys in model selector #98798

Closed
opened 2026-05-16 01:39:39 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/24655
Author: @linliang-bot
Created: 5/13/2026
Status: ❌ Closed

Base: dev ← Head: fix/24578-model-selector-duplicate-keys


📝 Commits (10+)

📊 Changes

3 files changed (+3 additions, -3 deletions)

View changed files

📝 src/lib/components/chat/Messages/ResponseMessage.svelte (+1 -1)
📝 src/lib/components/chat/Messages/UserMessage.svelte (+1 -1)
📝 src/lib/components/chat/ModelSelector/Selector.svelte (+1 -1)

📄 Description

Summary

  • fix duplicate keyed entries in the chat model selector when multiple providers expose models with the same display name/value alias
  • prefer the backing model.id as the Svelte keyed-each identity for the virtualized dropdown rows

Testing

  • not run (frontend package manager/tooling not available in this agent environment)

Checklist

  • My pull request targets the dev branch of open-webui/open-webui.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have tested my changes and verified that they work as expected, or documented why runtime verification was not possible in this environment.
  • My changes generate no new warnings or errors.
  • I have added thorough and meaningful tests if applicable, or documented why they were not added.
  • I have read and agree to the Contributor License Agreement in the section below.

Description

This addresses the model selector crash reported in #24578.

When multiple providers expose models that resolve to the same selector value/display alias, the virtualized dropdown currently keys rows by item.value, which can collide and trigger Svelte's each_key_duplicate error.

This patch uses the underlying model.id as the primary keyed identity for dropdown rows, falling back only if needed. That keeps the selector stable even when providers surface the same model name.

Closes #24578

Contributor License Agreement

By submitting this pull request, I confirm that I have the right to license my contribution under the same license as this project and agree that this contribution may be distributed under the terms of that license.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/24655 **Author:** [@linliang-bot](https://github.com/linliang-bot) **Created:** 5/13/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/24578-model-selector-duplicate-keys` --- ### 📝 Commits (10+) - [`fe6783c`](https://github.com/open-webui/open-webui/commit/fe6783c16699911c7be17392596d579333fb110c) Merge pull request #19030 from open-webui/dev - [`fc05e0a`](https://github.com/open-webui/open-webui/commit/fc05e0a6c5d39da60b603b4d520f800d6e36f748) Merge pull request #19405 from open-webui/dev - [`e3faec6`](https://github.com/open-webui/open-webui/commit/e3faec62c58e3a83d89aa3df539feacefa125e0c) Merge pull request #19416 from open-webui/dev - [`9899293`](https://github.com/open-webui/open-webui/commit/9899293f050ad50ae12024cbebee7e018acd851e) Merge pull request #19448 from open-webui/dev - [`140605e`](https://github.com/open-webui/open-webui/commit/140605e660b8186a7d5c79fb3be6ffb147a2f498) Merge pull request #19462 from open-webui/dev - [`6f1486f`](https://github.com/open-webui/open-webui/commit/6f1486ffd0cb288d0e21f41845361924e0d742b3) Merge pull request #19466 from open-webui/dev - [`d95f533`](https://github.com/open-webui/open-webui/commit/d95f533214e3fe5beb5e41ec1f349940bc4c7043) Merge pull request #19729 from open-webui/dev - [`a727153`](https://github.com/open-webui/open-webui/commit/a7271532f8a38da46785afcaa7e65f9a45e7d753) 0.6.43 (#20093) - [`6adde20`](https://github.com/open-webui/open-webui/commit/6adde203cd292a9e3af9c64a2ae36b603fed096a) Merge pull request #20394 from open-webui/dev - [`f9b0534`](https://github.com/open-webui/open-webui/commit/f9b0534e0c442631d1cb7205169588b9b6204179) Merge pull request #20522 from open-webui/dev ### 📊 Changes **3 files changed** (+3 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `src/lib/components/chat/Messages/ResponseMessage.svelte` (+1 -1) 📝 `src/lib/components/chat/Messages/UserMessage.svelte` (+1 -1) 📝 `src/lib/components/chat/ModelSelector/Selector.svelte` (+1 -1) </details> ### 📄 Description ## Summary - fix duplicate keyed entries in the chat model selector when multiple providers expose models with the same display name/value alias - prefer the backing `model.id` as the Svelte keyed-each identity for the virtualized dropdown rows ## Testing - not run (frontend package manager/tooling not available in this agent environment) ## Checklist - [x] My pull request targets the `dev` branch of `open-webui/open-webui`. - [x] I have performed a self-review of my own code. - [x] I have commented my code, particularly in hard-to-understand areas. - [x] I have tested my changes and verified that they work as expected, or documented why runtime verification was not possible in this environment. - [x] My changes generate no new warnings or errors. - [x] I have added thorough and meaningful tests if applicable, or documented why they were not added. - [x] I have read and agree to the Contributor License Agreement in the section below. ## Description This addresses the model selector crash reported in #24578. When multiple providers expose models that resolve to the same selector value/display alias, the virtualized dropdown currently keys rows by `item.value`, which can collide and trigger Svelte's `each_key_duplicate` error. This patch uses the underlying `model.id` as the primary keyed identity for dropdown rows, falling back only if needed. That keeps the selector stable even when providers surface the same model name. Closes #24578 ## Contributor License Agreement By submitting this pull request, I confirm that I have the right to license my contribution under the same license as this project and agree that this contribution may be distributed under the terms of that license. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-16 01:39:39 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#98798