{"record":{"id":"1e4ab658c92de003","repo":"apache/hadoop","slug":"access-mask-is-required-when-a-named-access-acl-is","errorCode":null,"errorMessage":"Access mask is required when a named access acl is present.","messagePattern":"Access mask is required when a named access acl is present\\.","errorType":"validation","errorClass":"InvalidAclOperationException","httpStatus":null,"severity":"error","filePath":"hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsAclHelper.java","lineNumber":114,"sourceCode":"      throws AzureBlobFileSystemException {\n    boolean accessAclTouched = false;\n    boolean defaultAclTouched = false;\n\n    final Set<String> removeIndicationSet = new HashSet<>();\n\n    for (String entryKey : toRemoveEntries.keySet()) {\n      final boolean isDefaultAcl = isDefaultAce(entryKey);\n      if (removeNamedAceAndUpdateSet(entryKey, isDefaultAcl, removeIndicationSet, aclEntries)) {\n        if (isDefaultAcl) {\n          defaultAclTouched = true;\n        } else {\n          accessAclTouched = true;\n        }\n      }\n    }\n\n    if (removeIndicationSet.contains(AbfsHttpConstants.ACCESS_MASK) && containsNamedAce(aclEntries, false)) {\n      throw new InvalidAclOperationException(\"Access mask is required when a named access acl is present.\");\n    }\n\n    if (accessAclTouched) {\n      if (removeIndicationSet.contains(AbfsHttpConstants.ACCESS_MASK)) {\n        aclEntries.remove(AbfsHttpConstants.ACCESS_MASK);\n      }\n      recalculateMask(aclEntries, false);\n    }\n\n    if (removeIndicationSet.contains(AbfsHttpConstants.DEFAULT_MASK) && containsNamedAce(aclEntries, true)) {\n      throw new InvalidAclOperationException(\"Default mask is required when a named default acl is present.\");\n    }\n\n    if (defaultAclTouched) {\n      if (removeIndicationSet.contains(AbfsHttpConstants.DEFAULT_MASK)) {\n        aclEntries.remove(AbfsHttpConstants.DEFAULT_MASK);\n      }\n      if (removeIndicationSet.contains(AbfsHttpConstants.DEFAULT_USER)) {","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsAclHelper.java#L96-L132","documentation":"Error \"Access mask is required when a named access acl is present.\" thrown in apache/hadoop.","triggerScenarios":"An ACL with named access entries is set without the required access mask entry.","commonSituations":"See trigger scenarios.","solutions":["Include the access mask (permissions) entry in the ACL when any named user or group access entry is present.","Add 'mask::rwx' with the appropriate permissions to the ACL spec."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}