Stay up to date on the latest product updates, customer stories, and industry news from Redpoint. Opt-in and select the topics you'd like to learn more about!
Redpoint Interaction v7.x Documentation

Admin: Database connector retry logic

Overview

This document describes the retry behavior for database connectors when handling transient errors.

AWS Redshift

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

20

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Code

Description

08S01

Communication link error

08001

Connection timeout

28000

Communication closed during authentication

53300

Too many connections

40P01

Deadlock detected

Azure SQL Database

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

30

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Error code

Description

-2

Timeout (Client-side)

2

Database server not found

26

Error locating server / Instance specified

40

Could not open connection

121

Transport-level error (Semaphore timeout)

233

Database server not found / Connection limit

258

Pre-login handshake timeout (SSL)

615

In-memory cache database ID out of sync

926

Database marked SUSPECT

4221

Read-secondary login failure (Availability Group wait)

10053

Transport-level error (connection aborted)

10928

Resource limit reached

10929

Server too busy for database

11001

No such host known (DNS/Network)

1204

Database engine cannot obtain a lock

1205

Deadlock (Transaction victim)

18452

Authentication failure (Domain-based)

4060

Login failed (Database not found/deleted)

40143

Connection loss (Azure-specific transient)

40197

Service busy / error processing request

40501

Service busy / error processing request

40544

Database reached size quota

40549

Session terminated (Long-running transaction)

40550

Session terminated (Too many locks)

40551

Session terminated (Excessive TEMPDB usage)

40552

Session terminated (Excessive transaction log usage)

40553

Session terminated (Excessive memory usage)

40613

Database unavailable (Retry later)

40615

Firewall issues (Temporary gateway blip)

49918

Not enough resources (Retry later)

49919

Too many create/update operations in progress

49920

Too many concurrent operations in progress

In addition to the numeric error codes above, retries are also triggered by message-text matching for transport-level errors, "Invalid object name", "severe error occurred", and other network-related connection failures.

Google BigQuery

BigQuery has two distinct, independently-configured retry mechanisms depending on the operation type; they should not be conflated.

Query retry (SELECT / DML)

Retry logic

Type

Description

Max retry count

Linear backoff retry strategy with jitter

Retry interval grows by a fixed increment per attempt (not exponential), starting from a base delay of 60 seconds, then randomized within that window. The delay is clamped so it never exceeds 15 minutes.

1440

Transient errors

Retries are triggered by matching on the exception message text (not by BigQuery reason/category codes such as rateLimitExceeded or quotaExceeded, which are not checked):

Error category

Specific description / Message match

Streaming Buffer

"Update or delete statement over table would affect rows in streaming buffer" (also requires a specific native error code)

Concurrency

"Could not serialize access to table due to concurrent update" (also requires a specific native error code)

Rate Limit / Throttling

"Exceeded rate limits" OR "Too many table update operations for this table" — handled as a single combined check, not two separate categories

Job Execution

"The job encountered an error during execution" (message-text match only; no internalError/backendError reason-code check)

Network (DNS)

Message must contain both "Couldn't resolve host name" AND "Error interacting with REST API"

Security (SSL)

Message must start with the exact prefix "(1160) Cannot enable SSL"

Bulk insert retry (streaming inserts)

A separate mechanism governs retries for row insert operations only.

Retry logic

Type

Description

Max retry count

Exponential backoff retry strategy

True exponential (doubling) backoff, starting from a base delay of 1 second, clamped to a maximum of 64 seconds

60

Transient errors

Retries are triggered based on the HTTP status code returned by the Google API client (not message text):

HTTP status

Description

404

Not Found

500

Internal Server Error

Oracle

Retry logic

Type

Description

Max retry count

Fixed retry

5 seconds interval

5

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Error code

Description

604

Error occurred at recursive SQL level (Generic wrapper)

1033

ORACLE startup or shutdown in progress

1089

Immediate shutdown in progress - no operations are permitted

3113

End-of-file on communication channel (Session lost)

3114

Not connected to ORACLE

3135

Connection lost contact

12170

TNS:Connect timeout occurred

12514

TNS:Listener does not currently know of service requested

12518

TNS:Listener could not hand off client connection

12528

TNS:Listener: all appropriate instances are blocking new connections

12541

TNS:No listener

12571

TNS:Packet writer failure

-1000

OCI_INVALID_HANDLE (Typically a driver-level transient state)

Special Case Handling
The implementation includes an additional retry condition for Oracle table statistics operations when the query contains CALL DBMS_STATS.gather_table_stats and the error code is 1 (a special case for table statistics operations).

PostgreSQL

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

20

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Code

Description

40001

Serialization failure

40P01

Deadlock detected

53000

Insufficient resources

53100

Disk full

53200

Out of memory

53300

Too many connections

53400

Configuration limit exceeded

55000

Object not in prerequisite state

55006

Object in use

55P03

Lock not available

57000

Operator intervention

57014

Query canceled

57P01

Admin shutdown

57P02

Crash shutdown

57P03

Cannot connect now

57P04

Database dropped

58000

System error

58030

I/O error

08000

Connection exception

08001

Client unable to establish connection

08003

Connection does not exist

08004

Server rejected connection

08006

Connection failure

08007

Transaction resolution unknown

08P01

Protocol violation

08S01

Communication error

Snowflake

Retry logic

Type

Description

Max retry count

Exponential backoff retry strategy

Retry interval is calculated using an exponential backoff strategy with jitter, starting from a base delay of 10 seconds and increasing exponentially with each retry attempt. The final delay is clamped to ensure it doesn't exceed 5 minutes

30

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

SQL state codes

Code

Description

08006

Network issue

SQL error codes

Code

Description

270001

Connection pool exhausted

270007

Request timeout

HTTP status codes

Code

Description

400

Bad request

403

Forbidden

404

Not found

417

Expectation failed

429

Too many requests

475

Too many requests (custom)

502

Bad gateway

503

Service unavailable

504

Gateway timeout

408

Request timeout

SQL Server

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

20

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Code

Description

1205

SQL Server Deadlock

4060

Database Login Failed

2

Server Not Found / Network Issues

233

Server Not Found / Network Issues

1204

Cannot Obtain a Lock

18452

Unable to Authenticate Based on Domain

-2

Timeout or Server Not Responding

Teradata

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

30

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Error code

Specific description

36

BufferSize exceeded

2631

Deadlock

2639

Too many simultaneous transactions

2641

Database/Table ID was restructured; Resubmit

2659

The DBS restarted between FastLoad or MLoad requests

2825

No record of the last request was found after DBC restart

2826

Request completed but all output was lost due to DBC restart

2827

Request was aborted by user or due to statement error

2828

Request was rolled back during system recovery

2834

Another user released the lock requested by the current operation

2835

A unique index has been invalidated; Resubmit request

3006

Logons are disabled

3007

Maximum number of sessions already on this PE (Parsing Engine)

3025

Host quiesced by DBC operator; New activity not allowed

3026

The user's right to log on has been revoked

3111

The Dispatcher has timed out the transaction

3120

The request is aborted because of a DBS recovery

3598

Concurrent change conflict on database — try again

3603

Concurrent change conflict on table — try again

3897

Request aborted due to Teradata system restart; Resubmit

7423

Object already locked and NOWAIT encountered

100002

Cannot create connection within the time specified

100004

Invalid Connection Pool operation

100029

The connection does not exist

115000

Unable to connect transport (Network/Port issue)

115001

Transport error sending data

115002

Transport error receiving data

115003

The receive operation timed out

115004

Unable to begin an asynchronous receive operation

115006

Could not resolve DataSource to an IpAddress

115008

An invalid response message was received

115009

Message truncation error; not all data was received

115012

Operation aborted due to unrecoverable session errors

115013

Invalid session state for requested operation

115014

The session is not open; send or receive operation not allowed

115024

Transport error initializing socket

115025

Could not resolve Data Source to an available node

115037

Transport error performing asynchronous send

115038

Error queuing the BeginSend operation

115039

Unable to begin an asynchronous send operation

115046

Reconnection timeout has expired

115047

The recovery attempt failed

115048

Session cannot be reconnected (Refer to InnerException)

115049

The socket connection was aborted or reset

Yellowbrick

Retry logic

Type

Description

Max retry count

Fixed retry

30 seconds interval

20

Transient error codes

Retries are triggered automatically when any of the following error codes are encountered:

Error code

Specific description

WL002

Workload wait time exceeded (Query timed out while in the queue)

WL003

Workload execution time exceeded (Query exceeded the maximum allowed runtime)

WL004

Workload rowcount exceeded (Query exceeded the maximum allowed rowcount)

08000

Connection exception

08003

Connection does not exist

08006

Connection failure (Backend unexpectedly closed connection)

08001

SQL client unable to establish SQL connection

08004

SQL server rejected establishment of connection

40P01

Deadlock detected

53300

Too many connections

Database connectors that do not implement retry logic

  • Azure Database for MySQL

  • Azure Database for PostgreSQL

  • Databricks

  • Apache Cassandra

  • Google BigTable