openai api response.failed correctly handled. see #690

This commit is contained in:
Mic 2026-03-06 00:00:00 +01:00
parent 50d8e8e41f
commit e788f305a0

View file

@ -85,6 +85,7 @@ self.onmessage = async function(event) {
const reader = response.body.getReader();
const decoder = new TextDecoder("utf-8");
let buffer = '';
let streamError = false;
while (true) {
if (stopStreaming) {
@ -139,8 +140,18 @@ self.onmessage = async function(event) {
postMessage({ type: 'newToken', payload: { token: parsedLine.delta } });
// } else if (parsedLine.type === 'response.completed' && parsedLine.response && parsedLine.response.id) {
// previous_response_id = parsedLine.response.id;
} else if (parsedLine.type === 'response.failed' && parsedLine.response && parsedLine.response.error) {
const error = parsedLine.response.error;
const errorMessage = error.message || JSON.stringify(error);
taLog.error("response.failed: " + JSON.stringify(error));
postMessage({ type: 'error', payload: i18nStrings["chatgpt_api_request_failed"] + ": " + errorMessage });
reader.cancel();
assistantResponseAccumulator = '';
streamError = true;
break;
}
}
if (streamError) break;
}
} else if (event.data.type === 'stop') {
stopStreaming = true;