diff --git a/internal/pkg/etcd/etcd.go b/internal/pkg/etcd/etcd.go index d9527a4c41..e135f9b4fb 100644 --- a/internal/pkg/etcd/etcd.go +++ b/internal/pkg/etcd/etcd.go @@ -6,6 +6,7 @@ package etcd import ( "context" + "errors" "fmt" "log" "net/url" @@ -259,6 +260,11 @@ func (c *Client) ForfeitLeadership(ctx context.Context) (string, error) { _, err = c.MoveLeader(ctx, m.GetID()) if err != nil { + if errors.Is(err, rpctypes.ErrNotLeader) { + // this member is not a leader anymore, so nothing to be done for the forfeit leadership + return "", nil + } + return "", err }