diff --git a/legacy/src/chatgpt-unofficial-proxy-api.ts b/legacy/src/chatgpt-unofficial-proxy-api.ts index 2dd5b1ef..57a3b0d1 100644 --- a/legacy/src/chatgpt-unofficial-proxy-api.ts +++ b/legacy/src/chatgpt-unofficial-proxy-api.ts @@ -218,7 +218,6 @@ export class ChatGPTUnofficialProxyAPI { } } } catch (err) { - // ignore for now; there seem to be some non-json messages reject(err) } }, diff --git a/legacy/src/fetch-sse.ts b/legacy/src/fetch-sse.ts index e9ea4792..08edacb8 100644 --- a/legacy/src/fetch-sse.ts +++ b/legacy/src/fetch-sse.ts @@ -36,28 +36,32 @@ export async function fetchSSE( } }) - // check if the response is an error, if so, throw it + // handle special response errors const feed = (chunk: string) => { let response = null + try { response = JSON.parse(chunk) } catch { - /// ignore + // ignore } - if (response?.detail) { - if (response.detail.type === 'invalid_request_error') { - const msg = `ChatGPT error ${response.detail.message}: ${response.detail.code} (${response.detail.type})` - const error = new types.ChatGPTError(msg, { cause: response }) - error.statusCode = response.detail.code - error.statusText = response.detail.message - if (onError) { - onError(error) - } else { - console.error(error) - } - return // don't feed to event parser + + if (response?.detail?.type === 'invalid_request_error') { + const msg = `ChatGPT error ${response.detail.message}: ${response.detail.code} (${response.detail.type})` + const error = new types.ChatGPTError(msg, { cause: response }) + error.statusCode = response.detail.code + error.statusText = response.detail.message + + if (onError) { + onError(error) + } else { + console.error(error) } + + // don't feed to the event parser + return } + parser.feed(chunk) }