Skip to content

Commit 468e1d7

Browse files
committed
Avoid retrying requests finished with 'UNAUTHORIZED' errors
1 parent 2c755e5 commit 468e1d7

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

internal/pool/pool.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/jonboulle/clockwork"
1010

11+
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
1112
"github.com/ydb-platform/ydb-go-sdk/v3/internal/endpoint"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
1314
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
@@ -339,7 +340,14 @@ func (p *Pool[PT, T]) try(ctx context.Context, f func(ctx context.Context, item
339340
item, err := p.getItem(ctx)
340341
if err != nil {
341342
if xerrors.IsYdb(err) {
342-
return xerrors.WithStackTrace(xerrors.Retryable(err))
343+
switch {
344+
case xerrors.IsOperationError(err, Ydb.StatusIds_UNAUTHORIZED):
345+
// https://github.com/ydb-platform/ydb-go-sdk/issues/1550
346+
// Avoid retrying UNAUTHORIZED errors.
347+
return xerrors.WithStackTrace(xerrors.Unretryable(err))
348+
default:
349+
return xerrors.WithStackTrace(xerrors.Retryable(err))
350+
}
343351
}
344352

345353
return xerrors.WithStackTrace(err)

0 commit comments

Comments
 (0)