Skip to content

Commit 9c15987

Browse files
committed
fix(mbe): fix response handlers for errors
Ticket: WP-4729
1 parent 306852b commit 9c15987

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/shared/responseHandler.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Request, Response as ExpressResponse, NextFunction } from 'express';
22
import { Config } from '../types';
33
import { BitGoRequest } from '../types/request';
4+
import { EnclavedError } from '../errors';
45

56
// Extend Express Response to include sendEncoded
67
interface EncodedResponse extends ExpressResponse {
@@ -31,19 +32,26 @@ export function responseHandler<T extends Config = Config>(fn: ServiceFunction<T
3132
const result = await fn(req as BitGoRequest<T>, res, next);
3233
return res.sendEncoded(result.type, result.payload);
3334
} catch (error) {
34-
// Log the error
35-
console.error('Error in service function:', error);
36-
3735
// If it's already a Response object (e.g. from Response.error)
3836
if (error && typeof error === 'object' && 'type' in error && 'payload' in error) {
3937
const apiError = error as ApiResponse;
4038
return res.sendEncoded(apiError.type, apiError.payload);
4139
}
4240

41+
// If it's an EnclavedError, use its status code
42+
if (error instanceof EnclavedError) {
43+
return res.sendEncoded(error.status, {
44+
error: error.message,
45+
name: error.name,
46+
details: error.message,
47+
});
48+
}
49+
4350
// Default error response
4451
return res.sendEncoded(500, {
4552
error: 'Internal Server Error',
46-
message: error instanceof Error ? error.message : 'An unexpected error occurred',
53+
name: error instanceof Error ? error.name : 'Error',
54+
details: error instanceof Error ? error.message : String(error),
4755
});
4856
}
4957
};

0 commit comments

Comments
 (0)