Quiet warning instead of stack trace when failing to parse advisories (#4817)
diff --git a/lib/src/source/hosted.dart b/lib/src/source/hosted.dart
index 09dc7ff..4696a86 100644
--- a/lib/src/source/hosted.dart
+++ b/lib/src/source/hosted.dart
@@ -601,11 +601,10 @@
       }
       body = decoded;
       result = _extractAdvisoryDetailsForPackage(decoded, ref.name);
-    } on FormatException catch (error, stackTrace) {
+    } on FormatException catch (error) {
       log.warning(
-        'Failed to decode advisories for $packageName from $hostedUrl.\n'
-        '$error\n'
-        '${Chain.forTrace(stackTrace)}',
+        'Failed to decode advisories for $packageName from $hostedUrl: '
+        '${getErrorMessage(error)}',
       );
       return null;
     } on PubHttpResponseException catch (error, stackTrace) {
diff --git a/test/get/hosted/advisory_test.dart b/test/get/hosted/advisory_test.dart
index e184c90..08288b5 100644
--- a/test/get/hosted/advisory_test.dart
+++ b/test/get/hosted/advisory_test.dart
@@ -434,6 +434,32 @@
     await ctx.run(['get']);
   });
 
+  testWithGolden('malformed advisories response', (ctx) async {
+    final server = await servePackages();
+    server.serve('foo', '1.2.3');
+
+    await d.dir(appPath, [
+      d.pubspec({
+        'name': 'app',
+        'dependencies': {'foo': '^1.0.0'},
+      }),
+    ]).create();
+
+    server.addAdvisory(
+      advisoryId: '123',
+      affectedPackages: [
+        AffectedPackage(name: 'foo', versions: ['1.2.3']),
+      ],
+    );
+
+    server.handle(
+      '/api/packages/foo/advisories',
+      (request) => Response.ok('{"advisories": "not a list"}'),
+    );
+
+    await ctx.run(['get']);
+  });
+
   test('do not fetch advisories when.`--offline`', () async {
     final server = await servePackages();
     server.serve('foo', '1.2.3');
diff --git a/test/testdata/goldens/get/hosted/advisory_test/malformed advisories response.txt b/test/testdata/goldens/get/hosted/advisory_test/malformed advisories response.txt
new file mode 100644
index 0000000..e89b08d
--- /dev/null
+++ b/test/testdata/goldens/get/hosted/advisory_test/malformed advisories response.txt
@@ -0,0 +1,10 @@
+# GENERATED BY: test/get/hosted/advisory_test.dart
+
+## Section 0
+$ pub get
+Resolving dependencies...
+Downloading packages...
++ foo 1.2.3
+Changed 1 dependency!
+[STDERR] Failed to decode advisories for foo from http://localhost:$PORT: advisories must be a list
+