From 0353e0299fbefddc3f64312d5c99c5c31b86a636 Mon Sep 17 00:00:00 2001 From: Oliver Hofmann Date: Sun, 10 May 2026 10:34:28 +0200 Subject: [PATCH] Use Promise.allSettled so log fetch failures don't break settings display --- frontend/src/main.jsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index fb1da3e..cfc914a 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -111,20 +111,24 @@ function SettingsSection({ password, refreshKey }) { useEffect(() => { const headers = authHeaders(password); - Promise.all([ + Promise.allSettled([ axios.get('/api/settings', { headers }), axios.get('/api/proxy-info', { headers }), axios.get('/api/logs/usage', { headers }), axios.get('/api/logs/error', { headers }), ]).then(([settingsRes, proxyRes, usageRes, errorRes]) => { - const s = settingsRes.data; + if (settingsRes.status === 'rejected' || proxyRes.status === 'rejected') { + setError('Einstellungen konnten nicht geladen werden.'); + return; + } + const s = settingsRes.value.data; setSettings(s); - setProxyEndpoint(proxyRes.data.endpoint); - setAppVersion(proxyRes.data.version); - setUsageLog(usageRes.data.lines); - setErrorLog(errorRes.data.lines); + setProxyEndpoint(proxyRes.value.data.endpoint); + setAppVersion(proxyRes.value.data.version); + if (usageRes.status === 'fulfilled') setUsageLog(usageRes.value.data.lines); + if (errorRes.status === 'fulfilled') setErrorLog(errorRes.value.data.lines); fetchModels(s.ollama_url, s.force_model); - }).catch(() => setError('Einstellungen konnten nicht geladen werden.')); + }); }, [refreshKey]); const handleSave = async (e) => {