Skip to content

Commit

Permalink
Provide a clearer error message when settings are missing midsession
Browse files Browse the repository at this point in the history
  • Loading branch information
raymyers committed Jan 8, 2025
1 parent 561f308 commit 276d96a
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
13 changes: 13 additions & 0 deletions frontend/__tests__/context/ws-client-provider.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,17 @@ describe("Propagate error message", () => {
type: 'error'
});
});

it("should display error including translation id when present", () => {
const message = "We have a problem!"
const addErrorMessageSpy = vi.spyOn(ChatSlice, "addErrorMessage")
updateStatusWhenErrorMessagePresent({message, data: {msg_id: '..id..'}})

expect(addErrorMessageSpy).toHaveBeenCalledWith({
message,
id: '..id..',
status_update: true,
type: 'error'
});
});
});
22 changes: 21 additions & 1 deletion frontend/src/context/ws-client-provider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,36 @@ interface WsClientProviderProps {
conversationId: string;
}

export function updateStatusWhenErrorMessagePresent(data: unknown) {
interface ErrorArg {
message?: string;
data?: ErrorArgData | unknown;
}

interface ErrorArgData {
msg_id: string;
}

export function updateStatusWhenErrorMessagePresent(data: ErrorArg | unknown) {
if (
data &&
typeof data === "object" &&
"message" in data &&
typeof data.message === "string"
) {
let msgId: string | undefined;
if (
"data" in data &&
data.data &&
typeof data.data === "object" &&
"msg_id" in data.data &&
typeof data.data.msg_id === "string"
) {
msgId = data.data.msg_id;
}
handleStatusMessage({
type: "error",
message: data.message,
id: msgId,
status_update: true,
});
}
Expand Down
4 changes: 4 additions & 0 deletions frontend/src/i18n/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,10 @@
"fr": "Nous avons modifié certains paramètres dans la dernière mise à jour. Prenez un moment pour les examiner.",
"tr": "Son güncellemede bazı ayarları değiştirdik. Gözden geçirmek için bir dakikanızı ayırın."
},
"CONFIGURATION$SETTINGS_NOT_FOUND": {
"en": "Settings not found. Please check your API key",
"es": "Configuraciones no encontradas. Por favor revisa tu API key"
},
"CONFIGURATION$AGENT_LOADING": {
"en": "Please wait while the agent loads. This may take a few minutes...",
"de": "Bitte warten Sie, während der Agent lädt. Das kann ein paar Minuten dauern...",
Expand Down
4 changes: 3 additions & 1 deletion openhands/server/listen_socket.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ async def connect(connection_id: str, environ, auth):
settings = await settings_store.load()

if not settings:
raise ConnectionRefusedError('Settings not found')
raise ConnectionRefusedError(
'Settings not found', {'msg_id': 'CONFIGURATION$SETTINGS_NOT_FOUND'}
)

try:
event_stream = await session_manager.join_conversation(
Expand Down

0 comments on commit 276d96a

Please sign in to comment.