diff --git a/lib/src/in_app_webview/in_app_webview_controller.dart b/lib/src/in_app_webview/in_app_webview_controller.dart
index b2be39c4..09fae84f 100644
--- a/lib/src/in_app_webview/in_app_webview_controller.dart
+++ b/lib/src/in_app_webview/in_app_webview_controller.dart
@@ -1096,13 +1096,18 @@ class InAppWebViewController {
     }
 
     if (manifestFound) {
-      Map<String, dynamic> manifest =
-          json.decode(await manifestResponse!.transform(Utf8Decoder()).join());
-      if (manifest.containsKey("icons")) {
-        for (Map<String, dynamic> icon in manifest["icons"]) {
-          favicons.addAll(_createFavicons(webviewUrl, assetPathBase,
-              icon["src"], icon["rel"], icon["sizes"], true));
+      try {
+        Map<String, dynamic> manifest =
+            json.decode(await manifestResponse!.transform(Utf8Decoder()).join());
+        if (manifest.containsKey("icons")) {
+          for (Map<String, dynamic> icon in manifest["icons"]) {
+            favicons.addAll(_createFavicons(webviewUrl, assetPathBase,
+                icon["src"], icon["rel"], icon["sizes"], true));
+          }
         }
+      } on FormatException catch (_) {
+        /// The [manifestResponse] might not has a valid JSON string, catch and
+        /// ignore the error
       }
     }