When fdescfs(5) is mounted with linrdlnk, /dev/fd/N uses VV_READLINK, so a lookup through a path like /dev/fd/N/name fails with ENOTDIR.
I hit the issue trying to run the latest claude-code 2.1.251 that introduced "Fixed file tools (Read, Write, Edit) following a symlink swapped inside the working directory after the permission check, which could read or write outside the approved location"