@@ -44,6 +44,23 @@ function createSanitizedHttpError(statusCode, detailedMessage, config) {
4444 return error ;
4545}
4646
47+ function safeBulkReasonDetailedMessage ( reason ) {
48+ if ( reason === undefined || reason === null ) {
49+ return 'Internal server error' ;
50+ }
51+ try {
52+ let detail ;
53+ if ( typeof reason . message === 'string' ) {
54+ detail = reason . message ;
55+ } else {
56+ detail = String ( reason ) ;
57+ }
58+ return typeof detail === 'string' ? detail : 'Internal server error' ;
59+ } catch {
60+ return 'Internal server error' ;
61+ }
62+ }
63+
4764/**
4865 * `{ code, message }` for GraphQL bulk mutation per-item failures (`ParseGraphQLBulkError`).
4966 * `Parse.Error` uses `createSanitizedError`; other values are logged and mapped to a generic message when sanitizing.
@@ -57,12 +74,7 @@ function bulkErrorPayloadFromReason(reason, config) {
5774 const sanitized = createSanitizedError ( reason . code , reason . message , config ) ;
5875 return { code : sanitized . code , message : sanitized . message } ;
5976 }
60- const detailedMessage =
61- reason && typeof reason . message === 'string'
62- ? reason . message
63- : reason !== undefined && reason !== null
64- ? String ( reason )
65- : 'Internal server error' ;
77+ const detailedMessage = safeBulkReasonDetailedMessage ( reason ) ;
6678 if ( process . env . TESTING ) {
6779 defaultLogger . error ( 'Bulk mutation non-Parse error:' , detailedMessage ) ;
6880 } else {
0 commit comments