Sonnar and Radarr not help with Root Folders

Sonarr version 4.0.3.1413
Radarr Version 5.4.6.8723
**Mono version I created it within a portainer using the LMDS script.
Debug logs
when I try and add my mount points for Sonarr and Radarr to a unraid share, I am getting two errors.
for Sonarr I am getting "Unable to add root folder Folder ‘/tv/’ is not writable by user ‘abc’ " and for
Radarr “Unable to load root folders”

but for both I am able to go to the mount points and see all the contents and browse them with no issues.

Description of issue:
I had to rebuild my Torrent server a few weeks ago. using the same procedure / settings as before
I have created a mounting point /mnt/media within the linux server, and mount this via fstab

//192.168.1.9/media /mnt/data cifs vers=3.0,credentials=/etc/.unraidsmscredentials,file_mode=0777,dir_mode=0777,nobrl,uid=1000,gid=1000 0 0

then using the portainer, I have set up a mounting point for each application, one point to my TV shows and the other to my movies.

Sonarr: /mnt/data/tvshows /tv
Radarr: /mnt/data/movies /movies

I am able to go into my mounting point /mnt/data and see all the folders that resides in that folder share. where I can create / delete and rename with no issues

but when I go into Sonarr or Radarr, I am able to browse to my mount points and click on then, but then I get the above errors.

and yes before anyone say, I have opened up my permissions to 0777 to all my mounting points, just for troubleshooting and once I have this issue resolve then I will go back and lock them down.

What am I missing ?

Mono.Unix.UnixIOException: Resource temporarily unavailabl [EWOULDBLOCK].

— End of inner exception stack trace —
at Mono.Unix.UnixDriveInfo.Refresh(Boolean throwException)
at NzbDrone.Mono.Disk.ProcMount.get_AvailableFreeSpace() in ./Radarr.Mono/Disk/ProcMount.cs:line 23
at NzbDrone.Mono.Disk.DiskProvider.GetAvailableSpace(String path)
at NzbDrone.Core.RootFolders.RootFolderService.<>c__DisplayClass15_0.b__0() in ./Radarr.Core/RootFolders/RootFolderService.cs:line 225
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

2024-04-14 16:16:35.4|Debug|Api|[GET] /api/v3/rootFolder: 200.OK (35 ms)
2024-04-14 16:16:36.1|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:36.1|Debug|Api|[GET] /api/v3/health: 200.OK (0 ms)
2024-04-14 16:16:43.5|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:43.5|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:43.5|Fatal|RadarrErrorPipeline|Request Failed. GET /api/v3/rootFolder/2

[v5.4.6.8723] System.InvalidOperationException: Resource temporarily unavailabl
—> Mono.Unix.UnixIOException: Resource temporarily unavailabl [EWOULDBLOCK].
— End of inner exception stack trace —
at Mono.Unix.UnixDriveInfo.Refresh(Boolean throwException)
at NzbDrone.Mono.Disk.ProcMount.get_AvailableFreeSpace() in ./Radarr.Mono/Disk/ProcMount.cs:line 23
at NzbDrone.Mono.Disk.DiskProvider.GetAvailableSpace(String path)
at NzbDrone.Core.RootFolders.RootFolderService.<>c__DisplayClass15_0.b__0() in ./Radarr.Core/RootFolders/RootFolderService.cs:line 225
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

2024-04-14 16:16:43.5|Debug|Api|[GET] /api/v3/rootFolder/2?timeout=false: 500.InternalServerError (36 ms)
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Api|[GET] /api/v3/health: 200.OK (1 ms)
2024-04-14 16:16:57.6|Debug|Api|[GET] /api/v3/system/status: 200.OK (1 ms)
2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|Api|[GET] /api/v3/diskspace: 200.OK (282 ms)
2024-04-14 16:16:58.8|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:58.8|Debug|Api|[GET] /api/v3/log/file: 200.OK (5 ms)
2024-04-14 16:17:00.9|Info|Radarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.

Just commenting to follow

I dont recall needing to rebuild my containers or anything, but am getting the same errors as OP reported.

I dont use mine often but i first noticed the issue after my newshost and VPN ran out.

After i renewed it i noticed my Usenet and Torrent started complaining that i had no more space on my shares. When i looked i still had over 10TB free.

As OP stated all my mounts are working and reachable, i can play media from them and see them from Sonnar and Radarr but when i tried to remount them get the Unable to load root folders error.

Found a solution for my issue.

Looks like there was a bug in the Linux kernel i was using on my docker host (5.15.0 - something). After updating to the latest kernel 6.8.7-060807 the issue was resolved.

It was the “nobrl” for me, I’d just upgraded all my containers when this started so something must’ve changed to require it. Might be a good thing though…I dont know about you but for me that was just a hack to get calibre working, this might force me to use an ebook management tool that’s a better fit for my environment. Either way, unmounting getting rid of the “nobrl”, and remounting seems to have fixed it for me.