diff --git a/runtime/tests/concurrency/generate_stress_test.dart b/runtime/tests/concurrency/generate_stress_test.dart
index e1616f0..621329a 100644
--- a/runtime/tests/concurrency/generate_stress_test.dart
+++ b/runtime/tests/concurrency/generate_stress_test.dart
@@ -34,6 +34,7 @@
   sb.writeln(r'''
 import 'dart:async';
 import 'dart:isolate';
+import 'dart:io';
 
 ''');
   for (int i = 0; i < testFiles.length; ++i) {
@@ -80,6 +81,7 @@
   late final ReceivePort onExit;
   late final List<ReceivePort> onExits;
   late final List<ReceivePort> onErrors;
+  final List<String> errorLog = [];
 
   Runner(this.tests) {
     onExit = ReceivePort();
@@ -91,7 +93,7 @@
     });
     onErrors = List<ReceivePort>.generate(tests.length, (int i) {
       return ReceivePort()..listen((error) {
-        print('[\${tests[i].name}] error: \$error');
+        errorLog.add('[\${tests[i].name}] error: \$error');
       });
     });
   }
@@ -138,6 +140,15 @@
     onExit.close();
     onExits.forEach((rp) => rp.close());
     onErrors.forEach((rp) => rp.close());
+
+    if (!errorLog.isEmpty) {
+      print('Spawning tests in isolates resulted in the following errors:');
+      print('------------------------------------------------------------');
+      errorLog.forEach(print);
+      print('------------------------------------------------------------');
+      print('-> Setting exitCode to 255');
+      exitCode = 255;
+    }
   }
 
 }
diff --git a/runtime/tests/concurrency/stress_test_list.json b/runtime/tests/concurrency/stress_test_list.json
index 502555d..f600f8b 100644
--- a/runtime/tests/concurrency/stress_test_list.json
+++ b/runtime/tests/concurrency/stress_test_list.json
@@ -3233,8 +3233,6 @@
     "../../../tests/standalone/double_smi_comparison_test.dart",
     "../../../tests/standalone/double_temp_test.dart",
     "../../../tests/standalone/double_to_int_test.dart",
-    "../../../tests/standalone/dwarf_stack_trace_obfuscate_test.dart",
-    "../../../tests/standalone/dwarf_stack_trace_test.dart",
     "../../../tests/standalone/fields_may_be_reset_test.dart",
     "../../../tests/standalone/float_array_test.dart",
     "../../../tests/standalone/fragmentation_typed_data_test.dart",
@@ -3263,7 +3261,6 @@
     "../../../tests/standalone/io/file_constructor_test.dart",
     "../../../tests/standalone/io/file_copy_test.dart",
     "../../../tests/standalone/io/file_create_test.dart",
-    "../../../tests/standalone/io/file_error2_test.dart",
     "../../../tests/standalone/io/file_fuzz_test.dart",
     "../../../tests/standalone/io/file_non_ascii_sync_test.dart",
     "../../../tests/standalone/io/file_non_ascii_test.dart",
@@ -3331,20 +3328,15 @@
     "../../../tests/standalone/io/network_policy_test.dart",
     "../../../tests/standalone/io/parent_test.dart",
     "../../../tests/standalone/io/platform_os_version_test.dart",
-    "../../../tests/standalone/io/process_check_arguments_test.dart",
-    "../../../tests/standalone/io/process_environment_test.dart",
     "../../../tests/standalone/io/process_exit_test.dart",
     "../../../tests/standalone/io/process_info_test.dart",
     "../../../tests/standalone/io/process_kill_test.dart",
-    "../../../tests/standalone/io/process_non_ascii_test.dart",
     "../../../tests/standalone/io/process_path_environment_test.dart",
     "../../../tests/standalone/io/process_path_test.dart",
     "../../../tests/standalone/io/process_pid_test.dart",
-    "../../../tests/standalone/io/process_run_output_test.dart",
     "../../../tests/standalone/io/process_run_test.dart",
     "../../../tests/standalone/io/process_segfault_test.dart",
     "../../../tests/standalone/io/process_start_exception_test.dart",
-    "../../../tests/standalone/io/process_stdin_transform_unsubscribe_test.dart",
     "../../../tests/standalone/io/raw_datagram_read_all_test.dart",
     "../../../tests/standalone/io/raw_datagram_socket_test.dart",
     "../../../tests/standalone/io/raw_datagram_zero_length_test.dart",
@@ -6579,8 +6571,6 @@
     "../../../tests/standalone_2/double_smi_comparison_test.dart",
     "../../../tests/standalone_2/double_temp_test.dart",
     "../../../tests/standalone_2/double_to_int_test.dart",
-    "../../../tests/standalone_2/dwarf_stack_trace_obfuscate_test.dart",
-    "../../../tests/standalone_2/dwarf_stack_trace_test.dart",
     "../../../tests/standalone_2/fields_may_be_reset_test.dart",
     "../../../tests/standalone_2/float_array_test.dart",
     "../../../tests/standalone_2/int_array_load_elimination_test.dart",
@@ -6607,7 +6597,6 @@
     "../../../tests/standalone_2/io/file_constructor_test.dart",
     "../../../tests/standalone_2/io/file_copy_test.dart",
     "../../../tests/standalone_2/io/file_create_test.dart",
-    "../../../tests/standalone_2/io/file_error2_test.dart",
     "../../../tests/standalone_2/io/file_error_test.dart",
     "../../../tests/standalone_2/io/file_fuzz_test.dart",
     "../../../tests/standalone_2/io/file_non_ascii_sync_test.dart",
@@ -6675,20 +6664,15 @@
     "../../../tests/standalone_2/io/network_policy_test.dart",
     "../../../tests/standalone_2/io/parent_test.dart",
     "../../../tests/standalone_2/io/platform_os_version_test.dart",
-    "../../../tests/standalone_2/io/process_check_arguments_test.dart",
-    "../../../tests/standalone_2/io/process_environment_test.dart",
     "../../../tests/standalone_2/io/process_exit_test.dart",
     "../../../tests/standalone_2/io/process_info_test.dart",
     "../../../tests/standalone_2/io/process_kill_test.dart",
-    "../../../tests/standalone_2/io/process_non_ascii_test.dart",
     "../../../tests/standalone_2/io/process_path_environment_test.dart",
     "../../../tests/standalone_2/io/process_path_test.dart",
     "../../../tests/standalone_2/io/process_pid_test.dart",
-    "../../../tests/standalone_2/io/process_run_output_test.dart",
     "../../../tests/standalone_2/io/process_run_test.dart",
     "../../../tests/standalone_2/io/process_segfault_test.dart",
     "../../../tests/standalone_2/io/process_start_exception_test.dart",
-    "../../../tests/standalone_2/io/process_stdin_transform_unsubscribe_test.dart",
     "../../../tests/standalone_2/io/raw_datagram_read_all_test.dart",
     "../../../tests/standalone_2/io/raw_datagram_socket_test.dart",
     "../../../tests/standalone_2/io/raw_datagram_zero_length_test.dart",
diff --git a/tests/language/operator/number_operator_typing_test.dart b/tests/language/operator/number_operator_typing_test.dart
index dcbacf3..a6fcd7d 100644
--- a/tests/language/operator/number_operator_typing_test.dart
+++ b/tests/language/operator/number_operator_typing_test.dart
@@ -1002,50 +1002,6 @@
   }
 }
 
-/// Creative combinations of types.
-void testComplex<I extends int, D extends double, N extends num,
-    O extends Object, NN extends N>(I i, D d, N n, O o, NN nn) {
-  O p = 1 as O;
-  if (p is! N) throw "promote to O&N";
-  if (p is! NN) throw "promote to O&N&NN";
-
-  checkIntersectionType<O, N>(p, p, p);
-  checkIntersectionType<N, NN>(p, p, p);
-
-  var result01 = p + p;
-  result01.expectStaticType<Exactly<num>>();
-
-  var clamp01 = p.clamp(p, p);
-  clamp01.expectStaticType<Exactly<num>>();
-
-  // Having different unrelated subtypes of int.
-  // Return the first operand's type.
-  N ni = n;
-  if (ni is! int) throw "promote ni to N&int";
-  (i + ni).expectStaticType<Exactly<int>>();
-  (i - ni).expectStaticType<Exactly<int>>();
-  (i * ni).expectStaticType<Exactly<int>>();
-  (i % ni).expectStaticType<Exactly<int>>();
-  i.remainder(ni).expectStaticType<Exactly<int>>();
-
-  // Use LUB for clamp.
-  i.clamp(ni, ni).expectStaticType<Exactly<int>>();
-  i.clamp(ni, i).expectStaticType<Exactly<int>>();
-
-  // Having different unrelated subtypes of double.
-  N nd = 1.0 as N;
-  if (nd is! double) throw "promote nd to N&double";
-  (d + nd).expectStaticType<Exactly<double>>();
-  (d - nd).expectStaticType<Exactly<double>>();
-  (d * nd).expectStaticType<Exactly<double>>();
-  (d % nd).expectStaticType<Exactly<double>>();
-  d.remainder(nd).expectStaticType<Exactly<double>>();
-
-  (d.clamp(nd, nd)).expectStaticType<Exactly<double>>();
-  (d.clamp(nd, d)).expectStaticType<Exactly<double>>();
-  (nd.clamp(d, d)).expectStaticType<Exactly<double>>();
-}
-
 /// Perform constant operations and check that they are still valid.
 class TestConst<I extends int, D extends double, N extends num> {
   static const dynamic dyn = 1;
diff --git a/tools/VERSION b/tools/VERSION
index 58c2d06..a09b606 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 254
+PRERELEASE 255
 PRERELEASE_PATCH 0
\ No newline at end of file
