LibreChat/packages/api/src/utils/http.ts
Dustin Healy 9ca1847535
🔧 refactor: customUserVar Error Normalization (#8950)
* fix: localization string had unused template var

* fix: add normalizeHttpError to hopefully stop UI hangs when an error is returned in UserController

- Ensures updateUserPluginsController always returns valid HTTP status codes instead of undefined
- Add normalizeHttpError() helper to safely extract status/message from errors
- Default to 400 status code when Error.status is undefined/invalid

* refactor: move normalizeHttpError to packages/api
2025-08-08 15:53:04 -04:00

26 lines
681 B
TypeScript

/**
* Normalizes an error-like object into an HTTP status and message.
* Ensures we always respond with a valid numeric status to avoid UI hangs.
*/
export function normalizeHttpError(
err: Error | { status?: number; message?: string } | unknown,
fallbackStatus = 400,
) {
let status = fallbackStatus;
if (err && typeof err === 'object' && 'status' in err && typeof err.status === 'number') {
status = err.status;
}
let message = 'An error occurred.';
if (
err &&
typeof err === 'object' &&
'message' in err &&
typeof err.message === 'string' &&
err.message.length > 0
) {
message = err.message;
}
return { status, message };
}