Skip to content

Commit b27603c

Browse files
authored
fix: Preserve trace for database query exceptions. (serverpod#3311)
1 parent 85f0a60 commit b27603c

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

packages/serverpod/lib/src/database/adapters/postgres/database_connection.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ class DatabaseConnection {
416416
exception: serverpodException,
417417
trace: trace,
418418
);
419-
throw serverpodException;
419+
Error.throwWithStackTrace(serverpodException, trace);
420420
} on pg.PgException catch (exception, trace) {
421421
var serverpodException = _PgDatabaseQueryException(exception.message);
422422
_logQuery(
@@ -426,7 +426,7 @@ class DatabaseConnection {
426426
exception: serverpodException,
427427
trace: trace,
428428
);
429-
throw serverpodException;
429+
Error.throwWithStackTrace(serverpodException, trace);
430430
} catch (exception, trace) {
431431
_logQuery(session, query, startTime, exception: exception, trace: trace);
432432
rethrow;

packages/serverpod/lib/src/server/log_manager/log_manager.dart

+5-6
Original file line numberDiff line numberDiff line change
@@ -338,14 +338,13 @@ class SessionLogManager {
338338
stderr.writeln('${DateTime.now().toUtc()} FAILED TO LOG SESSION');
339339
stderr.writeln(
340340
'CALL: ${session.callName} duration: ${duration.inMilliseconds}ms numQueries: $_numberOfQueries authenticatedUser: $authenticatedUserId');
341-
stderr.writeln('CALL error: $exception');
342-
stderr.writeln('$logStackTrace');
341+
if (exception != null) {
342+
stderr.writeln('CALL error: $exception');
343+
stderr.writeln('$stackTrace');
344+
}
343345

344-
stderr.writeln('LOG ERRORS');
345-
stderr.writeln('$e');
346+
stderr.writeln('LOG ERROR: $e');
346347
stderr.writeln('$logStackTrace');
347-
stderr.writeln('Current stacktrace:');
348-
stderr.writeln('${StackTrace.current}');
349348
}
350349
}
351350
return null;

0 commit comments

Comments
 (0)