mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
Provide a clearer error message when settings are missing midsession (#6158)
This commit is contained in:
parent
3cc20a2576
commit
8907fed78e
@ -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'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -67,16 +67,33 @@ interface WsClientProviderProps {
|
||||
conversationId: string;
|
||||
}
|
||||
|
||||
export function updateStatusWhenErrorMessagePresent(data: unknown) {
|
||||
if (
|
||||
data &&
|
||||
typeof data === "object" &&
|
||||
"message" in data &&
|
||||
typeof data.message === "string"
|
||||
) {
|
||||
interface ErrorArg {
|
||||
message?: string;
|
||||
data?: ErrorArgData | unknown;
|
||||
}
|
||||
|
||||
interface ErrorArgData {
|
||||
msg_id: string;
|
||||
}
|
||||
|
||||
export function updateStatusWhenErrorMessagePresent(data: ErrorArg | unknown) {
|
||||
const isObject = (val: unknown): val is object =>
|
||||
!!val && typeof val === "object";
|
||||
const isString = (val: unknown): val is string => typeof val === "string";
|
||||
if (isObject(data) && "message" in data && isString(data.message)) {
|
||||
let msgId: string | undefined;
|
||||
if (
|
||||
"data" in data &&
|
||||
isObject(data.data) &&
|
||||
"msg_id" in data.data &&
|
||||
isString(data.data.msg_id)
|
||||
) {
|
||||
msgId = data.data.msg_id;
|
||||
}
|
||||
handleStatusMessage({
|
||||
type: "error",
|
||||
message: data.message,
|
||||
id: msgId,
|
||||
status_update: true,
|
||||
});
|
||||
}
|
||||
|
||||
@ -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...",
|
||||
|
||||
@ -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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user