diff --git a/pkg/event/types.go b/pkg/event/types.go index 0344bf63..36856f37 100644 --- a/pkg/event/types.go +++ b/pkg/event/types.go @@ -137,6 +137,8 @@ func GetErrorCodeFromError(err error) ErrorCode { return ErrorCodeContextCancelled case contains(errStr, "invalid signature from initiator"): return ErrorCodeInvalidInitiatorSignature + case contains(errStr, "duplicate"): + return ErrorCodeSessionDuplicate default: return ErrorCodeUnknown } diff --git a/pkg/eventconsumer/event_consumer.go b/pkg/eventconsumer/event_consumer.go index 855c16cf..6f810260 100644 --- a/pkg/eventconsumer/event_consumer.go +++ b/pkg/eventconsumer/event_consumer.go @@ -323,6 +323,15 @@ func (ec *eventConsumer) consumeTxSigningEvent() error { // Check for duplicate session and track if new if ec.checkDuplicateSession(msg.WalletID, msg.TxID) { + duplicateErr := fmt.Errorf("duplicate signing request detected for walletID=%s txID=%s", msg.WalletID, msg.TxID) + ec.handleSigningSessionError( + msg.WalletID, + msg.TxID, + msg.NetworkInternalCode, + duplicateErr, + "Duplicate session", + natMsg, + ) return }