Skip to content

Commit f31b4e4

Browse files
authored
Fixing the handling of detach errors (#1032)
1 parent bc5d716 commit f31b4e4

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

pubsub/azure/servicebus/servicebus.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,14 @@ func (a *azureServiceBus) Subscribe(req pubsub.SubscribeRequest, handler pubsub.
413413
a.metadata.MaxActiveMessages,
414414
a.metadata.MaxActiveMessagesRecoveryInSec)
415415
if innerErr != nil {
416-
a.logger.Error(innerErr)
416+
var detachError *amqp.DetachError
417+
var ampqError *amqp.Error
418+
if errors.Is(innerErr, detachError) ||
419+
(errors.As(innerErr, &ampqError) && ampqError.Condition == amqp.ErrorDetachForced) {
420+
a.logger.Debug(innerErr)
421+
} else {
422+
a.logger.Error(innerErr)
423+
}
417424
}
418425
cancel() // Cancel receive context
419426

pubsub/azure/servicebus/subscription.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package servicebus
33
import (
44
"context"
55
"fmt"
6-
"strings"
76
"sync"
87
"time"
98

@@ -203,11 +202,7 @@ func (s *subscription) tryRenewLocks() {
203202
func (s *subscription) receiveMessage(ctx context.Context, handler azservicebus.HandlerFunc) error {
204203
s.logger.Debugf("Waiting to receive message on topic %s", s.topic)
205204
if err := s.entity.ReceiveOne(ctx, handler); err != nil {
206-
if strings.Contains(err.Error(), "force detached") {
207-
return nil
208-
}
209-
210-
return fmt.Errorf("%s error receiving message on topic %s, %s", errorMessagePrefix, s.topic, err)
205+
return fmt.Errorf("%s error receiving message on topic %s, %w", errorMessagePrefix, s.topic, err)
211206
}
212207

213208
return nil

0 commit comments

Comments
 (0)