{"record":{"id":"b1bee7f0003bdf1b","repo":"conductor-oss/conductor","slug":"failed-to-get-all-event-handlers","errorCode":null,"errorMessage":"Failed to get all event handlers","messagePattern":"Failed to get all event handlers","errorType":"exception","errorClass":"TransientException","httpStatus":500,"severity":"error","filePath":"cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraEventHandlerDAO.java","lineNumber":128,"sourceCode":"    @SuppressWarnings(\"unchecked\")\n    private List<EventHandler> getAllEventHandlersFromDB() {\n        try {\n            ResultSet resultSet =\n                    session.execute(selectAllEventHandlersStatement.bind(HANDLERS_KEY));\n            List<Row> rows = resultSet.all();\n            if (rows.size() == 0) {\n                LOGGER.info(\"No event handlers were found.\");\n                return Collections.EMPTY_LIST;\n            }\n            return rows.stream()\n                    .map(row -> readValue(row.getString(EVENT_HANDLER_KEY), EventHandler.class))\n                    .collect(Collectors.toList());\n\n        } catch (DriverException e) {\n            Monitors.error(CLASS_NAME, \"getAllEventHandlersFromDB\");\n            String errorMsg = \"Failed to get all event handlers\";\n            LOGGER.error(errorMsg, e);\n            throw new TransientException(errorMsg, e);\n        }\n    }\n\n    private void insertOrUpdateEventHandler(EventHandler eventHandler) {\n        try {\n            String handler = toJson(eventHandler);\n            session.execute(insertEventHandlerStatement.bind(eventHandler.getName(), handler));\n            recordCassandraDaoRequests(\"storeEventHandler\");\n            recordCassandraDaoPayloadSize(\"storeEventHandler\", handler.length(), \"n/a\", \"n/a\");\n        } catch (DriverException e) {\n            Monitors.error(CLASS_NAME, \"insertOrUpdateEventHandler\");\n            String errorMsg =\n                    String.format(\n                            \"Error creating/updating event handler: %s/%s\",\n                            eventHandler.getName(), eventHandler.getEvent());\n            LOGGER.error(errorMsg, e);\n            throw new TransientException(errorMsg, e);\n        }","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraEventHandlerDAO.java#L110-L146","documentation":"Thrown by CassandraEventHandlerDAO.getAllEventHandlersFromDB when reading all event handler rows fails. DriverException during the SELECT is wrapped in TransientException. The method backs getAllEventHandlers() and getEventHandlersForEvent().","triggerScenarios":"Calling getAllEventHandlers() (or getEventHandlersForEvent) when the SELECT query fails — session unavailable, read timeout, coordinator down, or the event_handler table is missing.","commonSituations":"Cassandra cluster unreachable at query time. Schema not initialized. Heavy load causing read timeouts on the event_handler table. Driver pool exhaustion.","solutions":["Confirm the Cassandra cluster is up and the session is open.","Verify the event_handler table exists in the configured keyspace (init() ran).","Retry — TransientException is retryable by design.","If read timeouts recur, raise the driver read_timeout or add a secondary index/partition strategy."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    return dao.getAllEventHandlers();\n} catch (TransientException e) {\n    log.warn(\"Transient read failure on event handlers; retrying\");\n    throw e;","preventionTips":["Wrap read paths in a bounded retry for TransientException.","Confirm the event_handler table is initialized at startup.","Tune driver read timeouts if getAllEventHandlers times out under load."],"tags":["cassandra","event-handler","read","transient","persistence"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}