From cc41379d4a95863d8b8ee2ade97db76d1bf3a7ab Mon Sep 17 00:00:00 2001 From: Alejandro Tapia Date: Tue, 3 Mar 2026 17:11:22 -0800 Subject: [PATCH] Greptile Fix: Fallback fixes --- .../src/components/settings.tsx | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/ui/litellm-dashboard/src/components/settings.tsx b/ui/litellm-dashboard/src/components/settings.tsx index 7a37afedb92..2c6ebfe5478 100644 --- a/ui/litellm-dashboard/src/components/settings.tsx +++ b/ui/litellm-dashboard/src/components/settings.tsx @@ -425,7 +425,7 @@ const Settings: React.FC = ({ accessToken, userRole, userID, } NotificationsManager.success("Alerts updated successfully"); }; - const handleSaveChanges = (callback: any) => { + const handleSaveChanges = async (callback: any) => { if (!accessToken) { return; } @@ -437,19 +437,28 @@ const Settings: React.FC = ({ accessToken, userRole, userID, ]), ); - const payload = { - environment_variables: updatedVariables, - litellm_settings: { - success_callback: [callback.name], - }, - }; + const callbackType = (callback.type ?? "success") as "success" | "failure" | "success_and_failure"; + const formValues = { ...updatedVariables, callback: callback.name }; + const payload = buildCallbackPayload( + formValues, + callback.name, + callbacks, + true, + callbackType, + callbackSettings, + ); try { - setCallbacksCall(accessToken, payload); + await setCallbacksCall(accessToken, payload); + NotificationsManager.success("Callback updated successfully"); + if (userID && userRole) { + const data = await getCallbacksCall(accessToken, userID, userRole); + setCallbacks(data.callbacks); + setCallbackSettings(data.callback_settings ?? {}); + } } catch (error) { NotificationsManager.fromBackend(error); } - NotificationsManager.success("Callback updated successfully"); }; const handleOk = () => { @@ -730,6 +739,7 @@ const Settings: React.FC = ({ accessToken, userRole, userID,
= ({ accessToken, userRole, userID, onCallbackChange={handleSelectedCallbackChange} /> + +