diff --git a/etcdutl/etcdutl/migrate_command.go b/etcdutl/etcdutl/migrate_command.go
index e9bac4f37..c3a02cb4a 100644
--- a/etcdutl/etcdutl/migrate_command.go
+++ b/etcdutl/etcdutl/migrate_command.go
@@ -83,7 +83,7 @@ func (o *migrateOptions) Config() (*migrateConfig, error) {
 	}
 	c.targetVersion, err = semver.NewVersion(o.targetVersion + ".0")
 	if err != nil {
-		return nil, fmt.Errorf("failed to parse target version: %w", err)
+		return nil, fmt.Errorf("failed to parse target version: %v", err)
 	}
 	if c.targetVersion.LessThan(schema.V3_5) {
 		return nil, fmt.Errorf(`target version %q not supported. Minimal "3.5"`, storageVersionToString(c.targetVersion))
diff --git a/server/embed/config_logging.go b/server/embed/config_logging.go
index b019289e6..2ebdb5e27 100644
--- a/server/embed/config_logging.go
+++ b/server/embed/config_logging.go
@@ -269,9 +269,9 @@ func setupLogRotation(logOutputs []string, logRotateConfigJSON string) error {
 		var syntaxError *json.SyntaxError
 		switch {
 		case errors.As(err, &syntaxError):
-			return fmt.Errorf("improperly formatted log rotation config: %w", err)
+			return fmt.Errorf("improperly formatted log rotation config: %v", err)
 		case errors.As(err, &unmarshalTypeError):
-			return fmt.Errorf("invalid log rotation config: %w", err)
+			return fmt.Errorf("invalid log rotation config: %v", err)
 		}
 	}
 	zap.RegisterSink("rotate", func(u *url.URL) (zap.Sink, error) {
diff --git a/server/storage/schema/membership.go b/server/storage/schema/membership.go
index 0b9cc0e49..844b50a85 100644
--- a/server/storage/schema/membership.go
+++ b/server/storage/schema/membership.go
@@ -102,7 +102,7 @@ func (s *membershipBackend) readMembersFromBackend() (map[types.ID]*membership.M
 		return nil
 	})
 	if err != nil {
-		return nil, nil, fmt.Errorf("couldn't read members from backend: %w", err)
+		return nil, nil, fmt.Errorf("couldn't read members from backend: %v", err)
 	}
 
 	err = tx.UnsafeForEach(MembersRemoved, func(k, v []byte) error {
@@ -111,7 +111,7 @@ func (s *membershipBackend) readMembersFromBackend() (map[types.ID]*membership.M
 		return nil
 	})
 	if err != nil {
-		return nil, nil, fmt.Errorf("couldn't read members_removed from backend: %w", err)
+		return nil, nil, fmt.Errorf("couldn't read members_removed from backend: %v", err)
 	}
 	return members, removed, nil
 }
diff --git a/server/storage/schema/schema.go b/server/storage/schema/schema.go
index 889b4e8d7..850b55d5b 100644
--- a/server/storage/schema/schema.go
+++ b/server/storage/schema/schema.go
@@ -69,7 +69,7 @@ func Migrate(lg *zap.Logger, tx backend.BatchTx, w WALVersion, target semver.Ver
 func UnsafeMigrate(lg *zap.Logger, tx backend.BatchTx, w WALVersion, target semver.Version) error {
 	current, err := UnsafeDetectSchemaVersion(lg, tx)
 	if err != nil {
-		return fmt.Errorf("cannot detect storage schema version: %w", err)
+		return fmt.Errorf("cannot detect storage schema version: %v", err)
 	}
 	plan, err := newPlan(lg, current, target)
 	if err != nil {
diff --git a/tests/functional/tester/cluster.go b/tests/functional/tester/cluster.go
index 256b61458..796ad5574 100644
--- a/tests/functional/tester/cluster.go
+++ b/tests/functional/tester/cluster.go
@@ -88,7 +88,7 @@ func NewCluster(lg *zap.Logger, fpath string) (*Cluster, error) {
 		var err error
 		clus.agentConns[i], err = grpc.Dial(ap.AgentAddr, dialOpts...)
 		if err != nil {
-			return nil, fmt.Errorf("cannot dial agent %v: %w", ap.AgentAddr, err)
+			return nil, fmt.Errorf("cannot dial agent %v: %v", ap.AgentAddr, err)
 		}
 		clus.agentClients[i] = rpcpb.NewTransportClient(clus.agentConns[i])
 		lg.Info("connected", zap.String("agent-address", ap.AgentAddr))