{"record":{"id":"02d25adbb948d7f3","repo":"Radarr/Radarr","slug":"unknown-group-0","errorCode":null,"errorMessage":"Unknown group: {0}","messagePattern":"Unknown group: (.+?)","errorType":"exception","errorClass":"LinuxPermissionsException","httpStatus":null,"severity":"error","filePath":"src/NzbDrone.Mono/Disk/DiskProvider.cs","lineNumber":510,"sourceCode":"        }\n\n        private uint GetGroupId(string group)\n        {\n            if (group.IsNullOrWhiteSpace())\n            {\n                return UNCHANGED_ID;\n            }\n\n            if (uint.TryParse(group, out var groupId))\n            {\n                return groupId;\n            }\n\n            var g = Syscall.getgrnam(group);\n\n            if (g == null)\n            {\n                throw new LinuxPermissionsException(\"Unknown group: {0}\", group);\n            }\n\n            return g.gr_gid;\n        }\n    }\n}\n","sourceCodeStart":492,"sourceCodeEnd":517,"githubUrl":"https://github.com/Radarr/Radarr/blob/ca451608dc60c6cec754aba8d96bfa30e9468ed5/src/NzbDrone.Mono/Disk/DiskProvider.cs#L492-L517","documentation":"LinuxPermissionsException thrown by GetGroupId when the supplied group string is not empty, is not a numeric GID, and Syscall.getgrnam(group) returns null. A null result means the group name is absent from the group database, so the GID cannot be resolved. The group name is interpolated.","triggerScenarios":"GetGroupId(group): not whitespace, uint.TryParse fails, Syscall.getgrnam(group) == null -> throw.","commonSituations":"Typo in the configured group; group not created yet; group lives in an NSS backend unavailable to the service; container without the group in /etc/group.","solutions":["Confirm the group exists from the service's perspective: sudo -u radarr getent group media.","Fix the typo in the group setting.","Create the group (groupadd) if missing, or pass the numeric GID instead.","In containers, define the group in the image or pass the numeric GID."],"exampleFix":"getent group media || sudo groupadd media\n# set the chown group in Radarr settings to 'media'","handlingStrategy":"validation","validationCode":"if (!group.IsNullOrWhiteSpace() && !uint.TryParse(group, out _) && Syscall.getgrnam(group) == null)\n{\n    _logger.Error(\"Group '{0}' does not resolve; refusing permission op\", group);\n    return;\n}","typeGuard":null,"tryCatchPattern":"try { var gid = GetGroupId(group); }\ncatch (LinuxPermissionsException ex) when (ex.Message.Contains(\"Unknown group\"))\n{\n    _logger.Error(ex, \"Create the group or fix the setting before retrying\");\n}","preventionTips":["Verify groups with getent group from the service environment.","Use numeric GIDs where NSS is unreliable.","Create media groups during provisioning."],"tags":["mono","linux","permissions","group","config"],"backgroundTag":null,"analyzedSha":"ca451608dc60c6cec754aba8d96bfa30e9468ed5","analyzedAt":"2026-08-13T17:21:54.115Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}