Skip to content

Commit 2819b8f

Browse files
danmichaeljonesDan Jones
andauthored
Handle errors during QA streaming (#13)
* Handle errors during QA streaming * Use structured errors when streaming --------- Co-authored-by: Dan Jones <[email protected]>
1 parent abe6793 commit 2819b8f

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/query/agent.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export class QueryAgent {
8484
});
8585

8686
if (!response.ok) {
87-
await handleError(response);
87+
await handleError(await response.text());
8888
}
8989

9090
return mapResponse(await response.json());
@@ -131,6 +131,10 @@ export class QueryAgent {
131131
);
132132

133133
for await (const event of sseStream) {
134+
if (event.event === "error") {
135+
await handleError(event.data);
136+
}
137+
134138
let output: ProgressMessage | StreamedTokens | QueryAgentResponse;
135139
if (event.event === "progress_message") {
136140
output = mapProgressMessageFromSSE(event);
@@ -139,8 +143,9 @@ export class QueryAgent {
139143
} else if (event.event === "final_state") {
140144
output = mapResponseFromSSE(event);
141145
} else {
142-
throw new Error(`Unexpected event type: ${event.event}`);
146+
throw new Error(`Unexpected event type: ${event.event}: ${event.data}`);
143147
}
148+
144149
yield output;
145150
}
146151
}

src/query/response/error.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
export const handleError = async (response: Response) => {
2-
const responseText = await response.text();
1+
export const handleError = async (responseText: string) => {
32
const json = getJson(responseText);
43

54
if (json?.error) {

0 commit comments

Comments
 (0)