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
- Restart the Media Driver so the client can reconnect to the same aeronDirectoryName
- Verify the driver process was not stopped or crashed; check driver logs for shutdown reason
- Use a DriverListener/Aeron context to detect driver death and recreate Aeron client and publications after driver restart
- 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)