redis/redis-py · error · NoValidDatabaseException

No valid database available for communication

Error message

No valid database available for communication

What it means

Error "No valid database available for communication" thrown in redis/redis-py.

Source

Thrown at redis/multidb/failover.py:66

    def execute(self) -> SyncDatabase:
        """Execute the failover strategy."""
        pass


class WeightBasedFailoverStrategy(FailoverStrategy):
    """
    Failover strategy based on database weights.
    """

    def __init__(self) -> None:
        self._databases = WeightedList()

    def database(self) -> SyncDatabase:
        for database, _ in self._databases:
            if database.circuit.state == CBState.CLOSED:
                return database

        raise NoValidDatabaseException("No valid database available for communication")

    def set_databases(self, databases: Databases) -> None:
        self._databases = databases


class DefaultFailoverStrategyExecutor(FailoverStrategyExecutor):
    """
    Executes given failover strategy.
    """

    def __init__(
        self,
        strategy: FailoverStrategy,
        failover_attempts: int = DEFAULT_FAILOVER_ATTEMPTS,
        failover_delay: float = DEFAULT_FAILOVER_DELAY,
    ):
        self._strategy = strategy
        self._failover_attempts = failover_attempts

View on GitHub (pinned to da03cdc7e8)

When it happens

Trigger: Thrown at redis/multidb/failover.py:66 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of redis/redis-py@da03cdc7e8 (2026-08-04). Data as JSON: /data/errors/8dc200161ce9349a.json. Report an issue: GitHub.