aeron-io/aeron · error · DriverTimeoutException

MediaDriver ( ) has been shutdown

Error message

MediaDriver (<aeronDirectoryName>) has been shutdown

What it means

Thrown by the client conductor's liveness check during its periodic duty cycle. The conductor keeps track of the Media Driver's last keepalive timestamp; when the driver's keepalive age exceeds driverTimeoutMs the conductor terminates itself. If the recorded keepalive value is Aeron.NULL_VALUE, it means the driver never wrote a keepalive at all, i.e. the Media Driver identified by <aeronDirectoryName> has been shut down (its CnC file no longer being maintained), so the client raises DriverTimeoutException to end the client's conductor thread.

Solutions

  1. Restart the Media Driver so the client can reconnect to the same aeronDirectoryName
  2. Verify the driver process was not stopped or crashed; check driver logs for shutdown reason
  3. Use a DriverListener/Aeron context to detect driver death and recreate Aeron client and publications after driver restart
  4. Ensure the client's aeronDirectoryName points at the directory of a running driver, not a stale directory
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at aeron-client/src/main/java/io/aeron/ClientConductor.java:1893 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12). Data as JSON: /api/errors/9cbf54a201790d7a. Report an issue: GitHub.

Appendix: source

Thrown at aeron-client/src/main/java/io/aeron/ClientConductor.java:1893

private int checkLiveness(final long nowNs)
{
    if ((timeOfLastKeepAliveNs + keepAliveIntervalNs) - nowNs < 0)
    {
        final long nowMs = epochClock.time();
        final long lastKeepAliveMs = driverProxy.timeOfLastDriverKeepaliveMs();

        if (nowMs > (lastKeepAliveMs + driverTimeoutMs))
        {
            terminateConductor();

            if (Aeron.NULL_VALUE == lastKeepAliveMs)
            {
                throw new DriverTimeoutException(
                    "MediaDriver (" + aeron.context().aeronDirectoryName() + ") has been shutdown");
            }

            throw new DriverTimeoutException(
                "MediaDriver (" + aeron.context().aeronDirectoryName() + ") keepalive: age=" +
                    (nowMs - lastKeepAliveMs) + "ms > timeout=" + driverTimeoutMs + "ms");
        }

        return 0;
    }

    return 0;
}

View on GitHub (pinned to 6d60124e15)