Skip to content

Commit 471b792

Browse files
committed
handle throwy cases
1 parent 1b09d0d commit 471b792

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

js/core/src/reflection.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -286,20 +286,19 @@ export class ReflectionServer {
286286
);
287287
}
288288
} catch (err) {
289-
if (isAbortError(err)) {
290-
// Handle cancellation - headers may have been sent via onTelemetry
291-
const errorResponse: Status = {
292-
code: StatusCodes.CANCELLED,
293-
message: 'Action was cancelled',
294-
details: {},
295-
};
296-
if (response.headersSent) {
297-
response.end(JSON.stringify({ error: errorResponse }));
298-
} else {
299-
response.status(200).json({ error: errorResponse });
300-
}
289+
const { message, stack } = err as Error;
290+
const errorResponse: Status = {
291+
code: isAbortError(err) ? StatusCodes.CANCELLED : StatusCodes.INTERNAL,
292+
message: isAbortError(err) ? 'Action was cancelled' : message,
293+
details: { stack },
294+
};
295+
if (response.headersSent) {
296+
// Headers already sent via onTraceStart, must send error in response body
297+
response.end(
298+
JSON.stringify({ error: errorResponse } as RunActionResponse)
299+
);
301300
} else {
302-
const { message, stack } = err as Error;
301+
// Headers not sent yet, use standard error handling
303302
next({ message, stack });
304303
}
305304
} finally {

0 commit comments

Comments
 (0)