diff --git a/server/platform/services/remotecluster/error.go b/server/platform/services/remotecluster/error.go index db693740a4..a7c7ab594b 100644 --- a/server/platform/services/remotecluster/error.go +++ b/server/platform/services/remotecluster/error.go @@ -3,7 +3,14 @@ package remotecluster -import "fmt" +import ( + "errors" + "fmt" +) + +var ( + RemoteClusterAlreadyConfirmedError = errors.New("the remote cluster has already been confirmed") +) type BufferFullError struct { capacity int diff --git a/server/platform/services/remotecluster/recv.go b/server/platform/services/remotecluster/recv.go index b4866b3594..b98cfa8b31 100644 --- a/server/platform/services/remotecluster/recv.go +++ b/server/platform/services/remotecluster/recv.go @@ -62,6 +62,10 @@ func (rcs *Service) ReceiveInviteConfirmation(confirm model.RemoteClusterInvite) return nil, fmt.Errorf("cannot accept invite confirmation for remote %s: %w", confirm.RemoteId, err) } + if rc.IsConfirmed() { + return nil, fmt.Errorf("cannot accept invite confirmation for remote %s: %w", confirm.RemoteId, RemoteClusterAlreadyConfirmedError) + } + rc.SiteURL = confirm.SiteURL rc.RemoteToken = confirm.Token