{"record":{"id":"90ce1ddceadca6e1","repo":"conductor-oss/conductor","slug":"failed-to-get-workflows-defs-for-s","errorCode":null,"errorMessage":"Failed to get workflows defs for : %s","messagePattern":"Failed to get workflows defs for : (.+?)","errorType":"exception","errorClass":"TransientException","httpStatus":null,"severity":"error","filePath":"cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraMetadataDAO.java","lineNumber":394,"sourceCode":"                    session.execute(selectAllWorkflowDefVersionsByNameStatement.bind(name));\n            recordCassandraDaoRequests(\"getAllWorkflowDefVersions\", \"n/a\", name);\n            List<Row> rows = resultSet.all();\n            if (rows.size() == 0) {\n                LOGGER.info(\"Not workflow definitions were found for : {}\", name);\n                return null;\n            }\n            return rows.stream()\n                    .map(\n                            row ->\n                                    readValue(\n                                            row.getString(WORKFLOW_DEFINITION_KEY),\n                                            WorkflowDef.class))\n                    .collect(Collectors.toList());\n        } catch (DriverException e) {\n            Monitors.error(CLASS_NAME, \"getAllWorkflowDefVersions\");\n            String errorMsg = String.format(\"Failed to get workflows defs for : %s\", name);\n            LOGGER.error(errorMsg, e);\n            throw new TransientException(errorMsg, e);\n        }\n    }\n\n    private TaskDef insertOrUpdateTaskDef(TaskDef taskDef) {\n        try {\n            String taskDefinition = toJson(taskDef);\n            session.execute(insertTaskDefStatement.bind(taskDef.getName(), taskDefinition));\n            recordCassandraDaoRequests(\"storeTaskDef\");\n            recordCassandraDaoPayloadSize(\n                    \"storeTaskDef\", taskDefinition.length(), taskDef.getName(), \"n/a\");\n        } catch (DriverException e) {\n            Monitors.error(CLASS_NAME, \"insertOrUpdateTaskDef\");\n            String errorMsg =\n                    String.format(\"Error creating/updating task definition: %s\", taskDef.getName());\n            LOGGER.error(errorMsg, e);\n            throw new TransientException(errorMsg, e);\n        }\n        return taskDef;","sourceCodeStart":376,"sourceCodeEnd":412,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraMetadataDAO.java#L376-L412","documentation":"Thrown when a DriverException occurs in getAllWorkflowDefVersions while selecting all versions of a workflow by name and deserializing each from JSON. Wrapped as TransientException - an infrastructure read failure interrupted the version listing.","triggerScenarios":"session.execute(selectAllWorkflowDefVersionsByNameStatement.bind(name)) raises a DriverException while fetching every version row for a given workflow name.","commonSituations":"Resolving the latest version during a Cassandra slowdown; read timeout on a workflow with many versions; replica unavailable; connection drop.","solutions":["Retry the call with backoff.","Confirm cluster health and read consistency settings.","Ensure the workflow_def_versions index table is initialized.","Inspect the wrapped DriverException for the root cause."],"exampleFix":"// before: single attempt\nList<WorkflowDef> versions = metadataDAO.getAllWorkflowDefVersions(name);\n\n// after: retry transient failures\nList<WorkflowDef> versions = RetryUtils.retryOn(TransientException.class, 3,\n        Duration.ofMillis(200),\n        () -> metadataDAO.getAllWorkflowDefVersions(name));","handlingStrategy":"retry","validationCode":"// Pre-flight: confirm session before fetching versions\nif (cassandraSession.isClosed()) {\n    throw new IllegalStateException(\"Cassandra session is closed; cannot list workflow versions\");\n}","typeGuard":null,"tryCatchPattern":"// Retry version listing on transient failure\ntry {\n    return metadataDAO.getAllWorkflowDefVersions(name);\n} catch (TransientException e) {\n    return backoffAndRetry(() -> metadataDAO.getAllWorkflowDefVersions(name), 3);\n}","preventionTips":["Retry getAllWorkflowDefVersions on TransientException.","Ensure the versions index table is present and consistent.","Cache the latest-version resolution to avoid repeated scans.","Monitor driver timeouts during version-heavy workflows."],"tags":["cassandra","workflow-definition","transient","network","driver","read"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}