[PR #23512] [CLOSED] fix: reset loading state when prompt save fails in PromptEditor #50276

Closed
opened 2026-04-30 02:55:09 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/23512
Author: @extrasmall0
Created: 4/8/2026
Status: Closed

Base: devHead: fix/prompt-editor-loading-state-reset


📝 Commits (10+)

📊 Changes

1 file changed (+22 additions, -17 deletions)

View changed files

📝 src/lib/components/workspace/Prompts/PromptEditor.svelte (+22 -17)

📄 Description

Fixes #23472

Problem

In PromptEditor.svelte, when onSubmit() throws (network error, server 5xx, etc.) the loading flag is never reset to false. This leaves the Save button permanently disabled with an infinite spinner and gives the user no way to retry or know something went wrong.

Root cause

loading = true;
// ...
await onSubmit({...});   // if this throws, execution jumps past loading = false
// ...
loading = false;          // never reached on error

Fix

Wrap the onSubmit call in a try/catch. On success the flow is identical to before. On failure, loading resets and a toast error informs the user.

try {
    await onSubmit({...});
    showEditModal = false;
    // ...success path unchanged
} catch (e) {
    console.error('Failed to save prompt:', e);
    toast.error($i18n.t('Failed to save prompt. Please try again.'));
}
loading = false;

The loading = false at the end runs in both branches (success and error) because it sits outside the try/catch, same position as before.

Testing

  1. Open Workspace → Prompts → edit any prompt
  2. Block the save API request (DevTools → Network → throttle/offline, or intercept with a proxy)
  3. Click Save
  4. Before: spinner never stops, button stays disabled, no feedback
  5. After: error toast appears, button re-enables, user can retry

Contributor License Agreement

  • I have read the CLA and agree that my contributions are made under the same license as this project.

🔄 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/23512 **Author:** [@extrasmall0](https://github.com/extrasmall0) **Created:** 4/8/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/prompt-editor-loading-state-reset` --- ### 📝 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 **1 file changed** (+22 additions, -17 deletions) <details> <summary>View changed files</summary> 📝 `src/lib/components/workspace/Prompts/PromptEditor.svelte` (+22 -17) </details> ### 📄 Description Fixes #23472 ## Problem In `PromptEditor.svelte`, when `onSubmit()` throws (network error, server 5xx, etc.) the `loading` flag is never reset to `false`. This leaves the Save button permanently disabled with an infinite spinner and gives the user no way to retry or know something went wrong. ## Root cause ```svelte loading = true; // ... await onSubmit({...}); // if this throws, execution jumps past loading = false // ... loading = false; // never reached on error ``` ## Fix Wrap the `onSubmit` call in a `try/catch`. On success the flow is identical to before. On failure, `loading` resets and a toast error informs the user. ```svelte try { await onSubmit({...}); showEditModal = false; // ...success path unchanged } catch (e) { console.error('Failed to save prompt:', e); toast.error($i18n.t('Failed to save prompt. Please try again.')); } loading = false; ``` The `loading = false` at the end runs in both branches (success and error) because it sits outside the try/catch, same position as before. ## Testing 1. Open Workspace → Prompts → edit any prompt 2. Block the save API request (DevTools → Network → throttle/offline, or intercept with a proxy) 3. Click Save 4. **Before:** spinner never stops, button stays disabled, no feedback 5. **After:** error toast appears, button re-enables, user can retry --- ## Contributor License Agreement - [x] I have read the [CLA](https://github.com/open-webui/open-webui/blob/main/LICENSE) and agree that my contributions are made under the same license as this project. --- <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-04-30 02:55:09 -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#50276