isRetryable property

bool get isRetryable

Returns true if the error is transient and may be retried.

Retryable SQLSTATE families:

  • 08xxx — connection errors (network / login timeout).
  • 40001 — serialization failure / deadlock (most databases).
  • 40P01 — PostgreSQL deadlock detected.
  • HYT00 — timeout expired (ODBC generic).
  • HYT01 — connection timeout expired (ODBC generic).

Subclasses that always represent transient conditions (e.g. ResourceLimitReachedError) override this to return true.

Implementation

bool get isRetryable {
  if (sqlState == null) return false;
  if (sqlState!.startsWith('08')) return true;
  if (sqlState == '40001' || sqlState == '40P01') return true;
  if (sqlState == 'HYT00' || sqlState == 'HYT01') return true;
  return false;
}