diff --git a/lib/src/entrypoint.dart b/lib/src/entrypoint.dart
index dce2e52..f57aeb9 100644
--- a/lib/src/entrypoint.dart
+++ b/lib/src/entrypoint.dart
@@ -678,13 +678,11 @@
   }) async {
     await log.progress('Building package executable', () async {
       ensureDir(p.dirname(pathOfSnapshot(executable)));
-      return waitAndPrintErrors([
-        _precompileExecutable(
-          executable,
-          additionalSources: additionalSources,
-          nativeAssets: nativeAssets,
-        ),
-      ]);
+      return await _precompileExecutable(
+        executable,
+        additionalSources: additionalSources,
+        nativeAssets: nativeAssets,
+      );
     });
   }
 
diff --git a/pubspec.lock b/pubspec.lock
index 5051dfb..e20fe4d 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,23 +5,23 @@
     dependency: transitive
     description:
       name: _fe_analyzer_shared
-      sha256: "45cfa8471b89fb6643fe9bf51bd7931a76b8f5ec2d65de4fb176dba8d4f22c77"
+      sha256: f6dbf021f4b214d85c79822912c5fcd142a2c4869f01222ad371bc51f9f1c356
       url: "https://pub.dev"
     source: hosted
-    version: "73.0.0"
+    version: "74.0.0"
   _macros:
     dependency: transitive
     description: dart
     source: sdk
-    version: "0.3.2"
+    version: "0.3.3"
   analyzer:
     dependency: "direct main"
     description:
       name: analyzer
-      sha256: "4959fec185fe70cce007c57e9ab6983101dbe593d2bf8bbfb4453aaec0cf470a"
+      sha256: f7e8caf82f2d3190881d81012606effdf8a38e6c1ab9e30947149733065f817c
       url: "https://pub.dev"
     source: hosted
-    version: "6.8.0"
+    version: "6.9.0"
   args:
     dependency: "direct main"
     description:
@@ -194,10 +194,10 @@
     dependency: transitive
     description:
       name: macros
-      sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
+      sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
       url: "https://pub.dev"
     source: hosted
-    version: "0.1.2-main.4"
+    version: "0.1.3-main.0"
   matcher:
     dependency: transitive
     description:
diff --git a/test/embedding/embedding_test.dart b/test/embedding/embedding_test.dart
index faeb17d..388768c 100644
--- a/test/embedding/embedding_test.dart
+++ b/test/embedding/embedding_test.dart
@@ -222,6 +222,20 @@
     );
   });
 
+  testWithGolden('Compilation errors are only printed once', (context) async {
+    await servePackages();
+    await d.dir(appPath, [
+      d.appPubspec(),
+      d.dir('bin', [d.file('syntax_error.dart', 'main() => print("hi")')]),
+    ]).create();
+    await context.runEmbedding(
+      ['run', ':syntax_error'],
+      environment: getPubTestEnvironment(),
+      workingDirectory: d.path(appPath),
+      exitCode: isNot(0),
+    );
+  });
+
   test('`embedding run` does `pub get` if sdk updated', () async {
     await d.dir(appPath, [
       d.pubspec({
diff --git a/test/testdata/goldens/embedding/embedding_test/Compilation errors are only printed once.txt b/test/testdata/goldens/embedding/embedding_test/Compilation errors are only printed once.txt
new file mode 100644
index 0000000..80db252
--- /dev/null
+++ b/test/testdata/goldens/embedding/embedding_test/Compilation errors are only printed once.txt
@@ -0,0 +1,11 @@
+# GENERATED BY: test/embedding/embedding_test.dart
+
+$ tool/test-bin/pub_command_runner.dart run :syntax_error
+[E] Failed to build myapp:syntax_error:
+[E] bin/syntax_error.dart:1:21: Error: Expected ';' after this.
+[E] main() => print("hi")
+[E]    ^
+[E] bin/syntax_error.dart:1:22: Error: Unexpected token ''.
+[E] main() => print("hi")
+[E]    ^...
+
diff --git a/tool/test-bin/pub_command_runner.dart b/tool/test-bin/pub_command_runner.dart
index 2665a7b..ec420af 100644
--- a/tool/test-bin/pub_command_runner.dart
+++ b/tool/test-bin/pub_command_runner.dart
@@ -91,7 +91,13 @@
 
   @override
   Future<int> run() async {
-    final executable = await getExecutableForCommand(argResults!.rest.first);
+    final DartExecutableWithPackageConfig executable;
+    try {
+      executable = await getExecutableForCommand(argResults!.rest.first);
+    } on CommandResolutionFailedException catch (e) {
+      log.error(e.message);
+      return -1;
+    }
     final packageConfig = executable.packageConfig;
     final process = await Process.start(
       Platform.executable,
