diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go
index 6c47de92c41d3c440c27b7db3777fdfb8df33971..a42470af45303bb609b4918fa2e112b1738ca166 100644
--- a/internal/cli/server/config.go
+++ b/internal/cli/server/config.go
@@ -687,11 +687,11 @@ func (c *Config) buildEth(stack *node.Node) (*ethconfig.Config, error) {
 		} else {
 			developer, err = ks.NewAccount(passphrase)
 			if err != nil {
-				Fatalf("Failed to create developer account: %v", err)
+				return nil, fmt.Errorf("failed to create developer account: %v", err)
 			}
 		}
 		if err := ks.Unlock(developer, passphrase); err != nil {
-			Fatalf("Failed to unlock developer account: %v", err)
+			return nil, fmt.Errorf("failed to unlock developer account: %v", err)
 		}
 		log.Info("Using developer account", "address", developer.Address)
 
diff --git a/internal/cli/server/server.go b/internal/cli/server/server.go
index 13b143d7c952dd4694b57dac2ea18c9a667a061e..f20ac43d1c1193b7a13fb4843ce71e604b3eeead 100644
--- a/internal/cli/server/server.go
+++ b/internal/cli/server/server.go
@@ -7,7 +7,6 @@ import (
 	"net"
 	"net/http"
 	"os"
-	"runtime"
 	"strings"
 	"time"
 
@@ -285,23 +284,3 @@ func setupLogger(logLevel string) {
 	}
 	log.Root().SetHandler(glogger)
 }
-
-// Fatalf formats a message to standard error and exits the program.
-// The message is also printed to standard output if standard error
-// is redirected to a different file.
-func Fatalf(format string, args ...interface{}) {
-	w := io.MultiWriter(os.Stdout, os.Stderr)
-	if runtime.GOOS == "windows" {
-		// The SameFile check below doesn't work on Windows.
-		// stdout is unlikely to get redirected though, so just print there.
-		w = os.Stdout
-	} else {
-		outf, _ := os.Stdout.Stat()
-		errf, _ := os.Stderr.Stat()
-		if outf != nil && errf != nil && os.SameFile(outf, errf) {
-			w = os.Stderr
-		}
-	}
-	fmt.Fprintf(w, "Fatal: "+format+"\n", args...)
-	os.Exit(1)
-}