diff --git a/command/server.go b/command/server.go index 10b94d1e1b..6e9d744085 100644 --- a/command/server.go +++ b/command/server.go @@ -163,6 +163,14 @@ func (c *ServerCommand) Run(args []string) int { var seal vault.Seal = &vault.DefaultSeal{} + // Ensure that the seal finalizer is called, even if using verify-only + defer func() { + err = seal.Finalize() + if err != nil { + c.Ui.Error(fmt.Sprintf("Error finalizing seals: %v", err)) + } + }() + coreConfig := &vault.CoreConfig{ Physical: backend, AdvertiseAddr: config.Backend.AdvertiseAddr, @@ -392,11 +400,6 @@ func (c *ServerCommand) Run(args []string) int { listener.Close() } - err = seal.Finalize() - if err != nil { - c.Ui.Error(fmt.Sprintf("Error finalizing seals: %v", err)) - } - return 0 }