{"record":{"id":"be4043feed49a30d","repo":"aeron-io/aeron","slug":"no-response-from-mediadriver-within-formatted-duration","errorCode":null,"errorMessage":"no response from MediaDriver within <formatted duration>","messagePattern":"no response from MediaDriver within <formatted duration>","errorType":"exception","errorClass":"DriverTimeoutException","httpStatus":null,"severity":"error","filePath":"aeron-client/src/main/java/io/aeron/ClientConductor.java","lineNumber":1848,"sourceCode":"                final RegistrationException ex = driverException;\n                if (null != ex)\n                {\n                    driverException = null;\n                    throw ex;\n                }\n\n                return;\n            }\n\n            if (Thread.currentThread().isInterrupted())\n            {\n                terminateConductor();\n                throw new AeronException(\"unexpected interrupt\");\n            }\n        }\n        while (deadlineNs - nanoClock.nanoTime() > 0);\n\n        throw new DriverTimeoutException(\"no response from MediaDriver within \" +\n            SystemUtil.formatDuration(driverTimeoutNs));\n    }\n\n    private int checkTimeouts(final long nowNs)\n    {\n        int workCount = 0;\n\n        if ((timeOfLastServiceNs + idleSleepDurationNs) - nowNs < 0)\n        {\n            checkServiceInterval(nowNs);\n            timeOfLastServiceNs = nowNs;\n\n            workCount += checkLiveness(nowNs);\n            workCount += checkLingeringResources(nowNs);\n        }\n\n        return workCount;\n    }","sourceCodeStart":1830,"sourceCodeEnd":1866,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-client/src/main/java/io/aeron/ClientConductor.java#L1830-L1866","documentation":"DriverTimeoutException thrown when the client awaited a response from the Media Driver for a correlated command and the driver did not reply within the configured driverTimeoutNs. The conductor terminates on this timeout because client-driver state can no longer be trusted to be consistent.","triggerScenarios":"addPublication/addSubscription/addCounter/removePublication etc. when the driver is hung, down, overloaded, or the IPC command queue is blocked; driver timeout configured smaller than realistic driver startup or GC pauses.","commonSituations":"Driver not started before client connect; driver stuck in long GC or blocked I/O; client driverTimeout set too low (default 10s) for slow environments; IPC file permissions preventing commands from being processed.","solutions":["Verify the Media Driver is running and responsive before connecting the client","Increase Context.driverTimeoutMs to accommodate slow driver startup or pauses","Check driver logs/GC logs for stalls; restart the driver if hung","After this error the client is terminated: create a fresh Aeron instance to retry"],"exampleFix":"// before\nAeron aeron = Aeron.connect(new Aeron.Context().driverTimeoutMs(1000)); // too aggressive\n// after\nAeron aeron = Aeron.connect(new Aeron.Context().driverTimeoutMs(30_000));","handlingStrategy":"retry","validationCode":"if (!isDriverRunning(aeronDir)) { startDriver(); } // check process/lock before connect","typeGuard":null,"tryCatchPattern":"catch (DriverTimeoutException e) { if (e.getMessage().startsWith(\"no response from MediaDriver\")) { restartDriverIfDown(); client = Aeron.connect(ctx); } }","preventionTips":["Start the driver before clients and verify readiness","Set Context.driverTimeoutMs generously for slow environments","Monitor driver health; the client is terminated after this error so full reconnect is required"],"tags":["aeron","driver","timeout","ipc"],"backgroundTag":"request-timeout","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}