{"record":{"id":"53b441e32558761f","repo":"apache/cassandra","slug":"unable-to-perform-authorization-of-super-user-perm","errorCode":null,"errorMessage":"Unable to perform authorization of super-user permission: ","messagePattern":"Unable to perform authorization of super-user permission: ","errorType":"exception","errorClass":"UnauthorizedException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/auth/CassandraRoleManager.java","lineNumber":491,"sourceCode":"        ImmutableSet.Builder<RoleResource> builder = ImmutableSet.builder();\n        UntypedResultSet rows = process(String.format(\"SELECT role from %s.%s\",\n                                                      SchemaConstants.AUTH_KEYSPACE_NAME,\n                                                      AuthKeyspace.ROLES),\n                                        ConsistencyLevel.QUORUM);\n        rows.forEach(row -> builder.add(RoleResource.role(row.getString(\"role\"))));\n        return builder.build();\n    }\n\n    public boolean isSuper(RoleResource role)\n    {\n        try\n        {\n            return getRole(role.getRoleName()).isSuper;\n        }\n        catch (RequestExecutionException e)\n        {\n            logger.debug(\"Failed to authorize {} for super-user permission\", role.getRoleName());\n            throw new UnauthorizedException(\"Unable to perform authorization of super-user permission: \" + e.getMessage(), e);\n        }\n    }\n\n    public boolean canLogin(RoleResource role)\n    {\n        try\n        {\n            return getRole(role.getRoleName()).canLogin;\n        }\n        catch (RequestExecutionException e)\n        {\n            logger.debug(\"Failed to authorize {} for login permission\", role.getRoleName());\n            throw new UnauthorizedException(\"Unable to perform authorization of login permission: \" + e.getMessage(), e);\n        }\n    }\n\n    public Map<String, String> getCustomOptions(RoleResource role)\n    {","sourceCodeStart":473,"sourceCodeEnd":509,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/auth/CassandraRoleManager.java#L473-L509","documentation":"UnauthorizedException from isSuper(): the super-user status could not be determined because reading the role row from system_auth.roles failed with a RequestExecutionException. The debug line 'Failed to authorize ... for super-user permission' names the role; the error signals an auth-table read failure, not a negative answer.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/auth/CassandraRoleManager.java:491 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Restore availability of system_auth replicas (the read uses QUORUM) and retry","Raise the system_auth replication factor to span more nodes per DC","Investigate the chained RequestExecutionException for the true cause (timeout, unavailable, etc.)"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}