Edit, it happened again today and I got the syslog this time, the TL:DR is its this: https://github.com/libfuse/libfuse/issues/589 So yeah. It's known and old and still open. May 13 12:00:30 Tower shfs: shfs: ../lib/fuse.c:1402: unlink_node: Assertion `node->nlookup > 1' failed. This fires at line 1402 of fuse.c (libfuse 3.16.2 still — same version as Feb), which is the unlink_node cleanup path. The assertion guards against a refcount underflow — shfs has tried to decrement an inode's lookup count below 1 when there are no more outstanding lookups. Once tripped, libfuse aborts the FUSE session and the /mnt/user mount is permanently severed. Identical kernel symptoms as before — nfsd returns ENOTCONN to clients: May 13 12:00:30 Tower kernel: nfsd: non-standard errno: -107 May 13 12:00:30 Tower kernel: WARNING: CPU: 0 PID: 15275 at fs/nfsd/vfs.c:111 nfserrno+0x45/0x60 [nfsd] May 13 12:00:30 Tower kernel: RIP: 0010:nfserrno+0x45/0x60 [nfsd] May 13 12:00:30 Tower kernel: nfsd_splice_read+0xe2/0x110 [nfsd] May 13 12:00:30 Tower kernel: nfsd4_encode_splice_read+0x55/0xf0 [nfsd] May 13 12:00:30 Tower kernel: nfsd4_encode_read_plus+0x10e/0x190 [nfsd] May 13 12:00:30 Tower kernel: nfsd4_encode_operation+0x9e/0x230 [nfsd] May 13 12:00:30 Tower kernel: nfsd4_proc_compound+0x24a/0x5f0 [nfsd] May 13 12:00:30 Tower kernel: nfsd_dispatch+0x110/0x200 [nfsd] May 13 12:00:30 Tower kernel: nfsd+0xbb/0xe0 [nfsd]