From 8a152cff3c136ff3f9eebba60d198f9b00059af0 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Thu, 28 May 2026 21:33:27 +0200 Subject: [PATCH] improve error logging --- .../assets/extensions/ml_engine/background.js | 6 +++++- .../feature/MLEngineFeature.kt | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/flutter_mozilla_components/android/src/main/assets/extensions/ml_engine/background.js b/packages/flutter_mozilla_components/android/src/main/assets/extensions/ml_engine/background.js index d6fee053..24ebbbc5 100644 --- a/packages/flutter_mozilla_components/android/src/main/assets/extensions/ml_engine/background.js +++ b/packages/flutter_mozilla_components/android/src/main/assets/extensions/ml_engine/background.js @@ -15,10 +15,14 @@ function sendJsonResultForRequest(id) { function sendErrorForRequest(id) { return function (error) { console.error(error); + const message = error?.message || String(error); port.postMessage({ "id": id, "status": "error", - "error": error?.message || String(error) + "error": message, + "errorName": error?.name, + "errorStack": error?.stack, + "errorString": String(error) }); } } diff --git a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/feature/MLEngineFeature.kt b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/feature/MLEngineFeature.kt index bcd7c054..86e80f9b 100644 --- a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/feature/MLEngineFeature.kt +++ b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/feature/MLEngineFeature.kt @@ -114,10 +114,23 @@ object MLEngineFeature { if (status == "success") { handler?.success(message) } else { + val errorDetails = buildString { + append(messageJSON.optString("error", "Unknown ML engine error")) + messageJSON.optString("errorName").takeIf { it.isNotBlank() }?.let { + append("\nName: ").append(it) + } + messageJSON.optString("errorString").takeIf { it.isNotBlank() }?.let { + append("\nString: ").append(it) + } + messageJSON.optString("errorStack").takeIf { it.isNotBlank() }?.let { + append("\nStack: ").append(it) + } + } + handler?.error( "ML Engine", "Failed to perform operation", - messageJSON.optString("error", "Unknown ML engine error") + errorDetails ) } }