{"id":"5e3afe4b77bb4806","repo":"redis/redis-py","slug":"cannot-execute-ft-cursor-commands-without-ft-aggre-5e3afe","errorCode":null,"errorMessage":"Cannot execute FT.CURSOR commands without FT.AGGREGATE","messagePattern":"Cannot execute FT\\.CURSOR commands without FT\\.AGGREGATE","errorType":"exception","errorClass":"RedisClusterException","httpStatus":null,"severity":"error","filePath":"redis/cluster.py","lineNumber":1123,"sourceCode":"        keys = self._get_command_keys(*args)\n        commands = []\n\n        for key in keys:\n            commands.append(\n                {\n                    \"args\": (args[0], key),\n                    \"kwargs\": kwargs,\n                }\n            )\n\n        return commands\n\n    def get_special_nodes(self) -> Optional[list[\"ClusterNode\"]]:\n        \"\"\"\n        Returns a list of nodes for commands with a special policy.\n        \"\"\"\n        if not self._aggregate_nodes:\n            raise RedisClusterException(\n                \"Cannot execute FT.CURSOR commands without FT.AGGREGATE\"\n            )\n\n        return self._aggregate_nodes\n\n    def get_random_primary_node(self) -> \"ClusterNode\":\n        \"\"\"\n        Returns a random primary node\n        \"\"\"\n        return random.choice(self.get_primaries())\n\n    def _evaluate_all_succeeded(self, res):\n        \"\"\"\n        Evaluate the result of a command with ResponsePolicy.ALL_SUCCEEDED\n        \"\"\"\n        first_successful_response = None\n\n        if isinstance(res, dict):","sourceCodeStart":1105,"sourceCodeEnd":1141,"githubUrl":"https://github.com/redis/redis-py/blob/da03cdc7e8731092b13e395605c3c1fb2de25de1/redis/cluster.py#L1105-L1141","documentation":"Error \"Cannot execute FT.CURSOR commands without FT.AGGREGATE\" thrown in redis/redis-py.","triggerScenarios":"Thrown at redis/cluster.py:1123 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"da03cdc7e8731092b13e395605c3c1fb2de25de1","analyzedAt":"2026-08-04T20:26:47.563Z","schemaVersion":2}