diff --git a/cli/server.go b/cli/server.go index 9d07673fbd640..92e7f9bbc7d1b 100644 --- a/cli/server.go +++ b/cli/server.go @@ -532,6 +532,15 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co return xerrors.Errorf("dial postgres: %w", err) } defer sqlDB.Close() + + pingCtx, pingCancel := context.WithTimeout(ctx, 15*time.Second) + defer pingCancel() + + err = sqlDB.PingContext(pingCtx) + if err != nil { + return xerrors.Errorf("ping postgres: %w", err) + } + // Ensure the PostgreSQL version is >=13.0.0! version, err := sqlDB.QueryContext(ctx, "SHOW server_version;") if err != nil { @@ -552,10 +561,6 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co } logger.Debug(ctx, "connected to postgresql", slog.F("version", versionStr)) - err = sqlDB.Ping() - if err != nil { - return xerrors.Errorf("ping postgres: %w", err) - } err = migrations.Up(sqlDB) if err != nil { return xerrors.Errorf("migrate up: %w", err) @@ -793,9 +798,10 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co }() hasFirstUser, err := client.HasFirstUser(ctx) - if !hasFirstUser && err == nil { - cmd.Println() - cmd.Println("Get started by creating the first user (in a new terminal):") + if err != nil { + cmd.Println("\nFailed to check for the first user: " + err.Error()) + } else if !hasFirstUser { + cmd.Println("\nGet started by creating the first user (in a new terminal):") cmd.Println(cliui.Styles.Code.Render("coder login " + accessURLParsed.String())) }