diff --git a/app/src/components/settings/panels/AIPanel.tsx b/app/src/components/settings/panels/AIPanel.tsx index 05fb6d91a6..172edbdc13 100644 --- a/app/src/components/settings/panels/AIPanel.tsx +++ b/app/src/components/settings/panels/AIPanel.tsx @@ -48,6 +48,7 @@ import { import { ConfirmationModal } from '../../intelligence/ConfirmationModal'; import SettingsHeader from '../components/SettingsHeader'; import { useSettingsNavigation } from '../hooks/useSettingsNavigation'; +import { presentProviderSetupError, ProviderSetupErrorNotice } from './ProviderSetupErrorNotice'; import { useReembedBackfillModal } from './useReembedBackfillModal'; // ───────────────────────────────────────────────────────────────────────────── @@ -577,7 +578,13 @@ const ProviderKeyDialog = ({ try { await onSubmit(trimmed); } catch (err) { - setError(err instanceof Error ? err.message : String(err)); + const message = err instanceof Error ? err.message : String(err); + console.warn('[ai-settings] provider setup failed', { + slug, + local_runtime: isLocalRuntime, + summary: presentProviderSetupError(message).summary, + }); + setError(message); setPhase('idle'); } }; @@ -619,9 +626,7 @@ const ProviderKeyDialog = ({ }} className={`rounded-lg border border-stone-300 dark:border-neutral-700 bg-white dark:bg-neutral-900 px-3 py-2 text-sm text-stone-900 dark:text-neutral-100 placeholder-stone-400 dark:placeholder-neutral-500 focus:border-primary-500 focus:outline-none focus:ring-1 focus:ring-primary-500 disabled:opacity-60 ${isLocalRuntime ? 'font-mono' : ''}`} /> - {error ? ( -

{error}

- ) : null} + {error ? : null}
@@ -2617,11 +2622,7 @@ const CloudProviderEditor = ({ />
)} - {submitError && ( -
- {submitError} -
- )} + {submitError ? : null}