/** * 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 }; }