{"record":{"id":"259440214003b19e","repo":"prestodb/presto","slug":"node-selection-not-supported-259440","errorCode":"NODE_SELECTION_NOT_SUPPORTED","errorMessage":"Unsupported node selection strategy %s","messagePattern":"Unsupported node selection strategy (.+?)","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/execution/scheduler/nodeSelection/SimpleNodeSelector.java","lineNumber":187,"sourceCode":"            List<InternalNode> candidateNodes;\n            switch (split.getNodeSelectionStrategy()) {\n                case HARD_AFFINITY:\n                    candidateNodes = selectExactNodes(nodeMap, split.getPreferredNodes(nodeProvider), includeCoordinator);\n                    preferredNodeCount = OptionalInt.of(candidateNodes.size());\n                    break;\n                case SOFT_AFFINITY:\n                    candidateNodes = selectExactNodes(nodeMap, split.getPreferredNodes(nodeProvider), includeCoordinator);\n                    preferredNodeCount = OptionalInt.of(candidateNodes.size());\n                    candidateNodes = ImmutableList.<InternalNode>builder()\n                            .addAll(candidateNodes)\n                            .addAll(randomNodeSelection.pickNodes(split))\n                            .build();\n                    break;\n                case NO_PREFERENCE:\n                    candidateNodes = randomNodeSelection.pickNodes(split);\n                    break;\n                default:\n                    throw new PrestoException(NODE_SELECTION_NOT_SUPPORTED, format(\"Unsupported node selection strategy %s\", split.getNodeSelectionStrategy()));\n            }\n\n            if (candidateNodes.isEmpty()) {\n                log.debug(\"No nodes available to schedule %s. Available nodes %s\", split, nodeMap.getActiveNodes());\n                throw new PrestoException(NO_NODES_AVAILABLE, \"No nodes available to run query\");\n            }\n\n            SplitWeight splitWeight = split.getSplitWeight();\n            Optional<InternalNodeInfo> chosenNodeInfo = Optional.empty();\n\n            if (taskLoadSplitWeightProvider.isPresent()) {\n                chosenNodeInfo = chooseLeastBusyNode(splitWeight, candidateNodes, taskLoadSplitWeightProvider.get(), preferredNodeCount, maxSplitsWeightPerTask, assignmentStats);\n            }\n            else {\n                chosenNodeInfo = chooseLeastBusyNode(splitWeight, candidateNodes, assignmentStats::getTotalSplitsWeight, preferredNodeCount, maxSplitsWeightPerNode, assignmentStats);\n                if (!chosenNodeInfo.isPresent()) {\n                    chosenNodeInfo = chooseLeastBusyNode(splitWeight, candidateNodes, assignmentStats::getQueuedSplitsWeightForStage, preferredNodeCount, maxPendingSplitsWeightPerTask, assignmentStats);\n                }","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/execution/scheduler/nodeSelection/SimpleNodeSelector.java#L169-L205","documentation":"Defensive default branch in SimpleNodeSelector.computeAssignments: the split's NodeSelectionStrategy is not one of the recognized values (HARD_AFFINITY, SOFT_AFFINITY, NO_AFFINITY), so no node-selection code path exists for it.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/scheduler/nodeSelection/SimpleNodeSelector.java:187 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the connector split manager to return one of the supported NodeSelectionStrategy values","Update Presto to a version whose scheduler knows the newer strategy value","Avoid the connector version/feature combination that emits the unknown strategy"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}