From f700dfa9002ba795c84f2e58a19afc1ee769d8bb Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Tue, 6 Oct 2026 12:40:58 +0200 Subject: [PATCH] fix: Improve logging of unhandled errors --- packages/snaps-controllers/src/services/ExecutionService.ts | 2 +- packages/snaps-controllers/src/snaps/SnapController.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/snaps-controllers/src/services/ExecutionService.ts b/packages/snaps-controllers/src/services/ExecutionService.ts index e693be36db..110cd4140e 100644 --- a/packages/snaps-controllers/src/services/ExecutionService.ts +++ b/packages/snaps-controllers/src/services/ExecutionService.ts @@ -88,7 +88,7 @@ export type SnapExecutionData = { export type SnapErrorJson = { message: string; code: number; - data?: Json; + data?: Record; }; export type ExecutionServiceUnhandledErrorEvent = { diff --git a/packages/snaps-controllers/src/snaps/SnapController.ts b/packages/snaps-controllers/src/snaps/SnapController.ts index 8c89b853dd..332ed8e284 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.ts +++ b/packages/snaps-controllers/src/snaps/SnapController.ts @@ -1840,7 +1840,10 @@ export class SnapController extends BaseController< _onUnhandledSnapError(snapId: string, error: SnapErrorJson) { // Log the error that caused the crash // so it gets raised to the developer for debugging purposes. - logError(`Unhandled error from "${snapId}":`, error); + logError( + `Unhandled error from "${snapId}":`, + getErrorMessage(error.data?.cause ?? error), + ); this.stopSnap(snapId as SnapId, SnapStatusEvents.Crash).catch( (stopSnapError) => { // TODO: Decide how to handle errors.