diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index a0760316fb1..748f98b0581 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart @@ -779,7 +779,10 @@ extension FlutterVmService on vm_service.VmService { kListViewsMethod, ); if (response == null) { - return null; + // The service may have disappeared mid-request. + // Return an empty list now, and let the shutdown logic elsewhere deal + // with cleaning up. + return []; } final List rawViews = response.json['views'] as List; final List views = [ diff --git a/packages/flutter_tools/test/general.shard/vmservice_test.dart b/packages/flutter_tools/test/general.shard/vmservice_test.dart index 4cf403c1a35..cdf51571659 100644 --- a/packages/flutter_tools/test/general.shard/vmservice_test.dart +++ b/packages/flutter_tools/test/general.shard/vmservice_test.dart @@ -356,7 +356,7 @@ void main() { expect(skSLs, isNull); final List views = await fakeVmServiceHost.vmService.getFlutterViews(); - expect(views, isNull); + expect(views, isEmpty); final vm_service.Response screenshot = await fakeVmServiceHost.vmService.screenshot(); expect(screenshot, isNull);