diff --git a/buildlet/gce.go b/buildlet/gce.go
index 84f0a56..a92bfd6 100644
--- a/buildlet/gce.go
+++ b/buildlet/gce.go
@@ -5,11 +5,12 @@
 package buildlet
 
 import (
+	"bytes"
 	"context"
+	"encoding/json"
 	"errors"
 	"fmt"
 	"io"
-	"log"
 	"net"
 	"os"
 	"os/exec"
@@ -45,7 +46,20 @@
 }
 
 func (q *GCEError) Error() string {
-	return fmt.Sprintf("failed with errors: %+v", q.OpErrors)
+	var buf bytes.Buffer
+	fmt.Fprintf(&buf, "%d GCE operation errors: ", len(q.OpErrors))
+	for i, e := range q.OpErrors {
+		if i != 0 {
+			buf.WriteString("; ")
+		}
+		b, err := json.Marshal(e)
+		if err != nil {
+			fmt.Fprintf(&buf, "json.Marshal(OpErrors[%d]): %v", i, err)
+			continue
+		}
+		buf.Write(b)
+	}
+	return buf.String()
 }
 
 func (q *GCEError) Is(target error) bool {
@@ -239,7 +253,6 @@
 			if op.Error != nil {
 				err := &GCEError{OpErrors: make([]*compute.OperationErrorErrors, len(op.Error.Errors))}
 				copy(err.OpErrors, op.Error.Errors)
-				log.Println(err.Error())
 				return nil, err
 			}
 			break OpLoop
diff --git a/internal/coordinator/pool/gce.go b/internal/coordinator/pool/gce.go
index 0d44187..8b4822a 100644
--- a/internal/coordinator/pool/gce.go
+++ b/internal/coordinator/pool/gce.go
@@ -490,7 +490,7 @@
 			Zone: zone,
 		})
 		if errors.Is(err, buildlet.ErrQuotaExceeded) && ctx.Err() == nil {
-			log.Printf("Failed to create VM: %q. Retrying after 1 second (attempt: %d).", err, attempts)
+			log.Printf("Failed to create VM because quota exceeded. Retrying after 1 second (attempt: %d).", attempts)
 			attempts++
 			time.Sleep(time.Second)
 			continue
