Handle empty builders case for /api/reset-try-task (#2085)

diff --git a/app_dart/lib/src/request_handlers/reset_try_task.dart b/app_dart/lib/src/request_handlers/reset_try_task.dart
index 9d70698..19829a5 100644
--- a/app_dart/lib/src/request_handlers/reset_try_task.dart
+++ b/app_dart/lib/src/request_handlers/reset_try_task.dart
@@ -34,9 +34,8 @@
     final String owner = request!.uri.queryParameters[kOwnerParam] ?? 'flutter';
     final String repo = request!.uri.queryParameters[kRepoParam]!;
     final String pr = request!.uri.queryParameters[kPullRequestNumberParam]!;
-    final String? builders = request!.uri.queryParameters[kBuilderParam] ?? '';
-    // The [builders] parameter is expecting comma joined string, e.g. 'builder1, builder2'.
-    final List<String> builderList = builders!.split(',').map((String builder) => builder.trim()).toList();
+    final String builders = request!.uri.queryParameters[kBuilderParam] ?? '';
+    final List<String> builderList = getBuilderList(builders);
 
     final int? prNumber = int.tryParse(pr);
     if (prNumber == null) {
@@ -48,4 +47,15 @@
     await scheduler.triggerPresubmitTargets(pullRequest: pullRequest, builderTriggerList: builderList);
     return Body.empty;
   }
+
+  /// Parses [builders] to a String list.
+  ///
+  /// The [builders] parameter is expecting comma joined string, e.g. 'builder1, builder2'.
+  /// Returns an empty list if no [builders] is specified.
+  List<String> getBuilderList(String builders) {
+    if (builders.isEmpty) {
+      return <String>[];
+    }
+    return builders.split(',').map((String builder) => builder.trim()).toList();
+  }
 }
diff --git a/app_dart/test/request_handlers/reset_try_task_test.dart b/app_dart/test/request_handlers/reset_try_task_test.dart
index f5b6d5e..5b5a4da 100644
--- a/app_dart/test/request_handlers/reset_try_task_test.dart
+++ b/app_dart/test/request_handlers/reset_try_task_test.dart
@@ -80,5 +80,14 @@
       });
       expect(await tester.get(handler), Body.empty);
     });
+
+    test('Parses empty builder correctly', () {
+      final List<String> builders = handler.getBuilderList('');
+      expect(builders.isEmpty, true);
+    });
+
+    test('Parses non-empty builder correctly', () {
+      expect(handler.getBuilderList('a, b, c'), <String>['a', 'b', 'c']);
+    });
   });
 }