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}