This is a frustrating one. Make sure that the user you are connecting as and the target directory have both the same user as well as group permissions.
For example, if you are chroot jailing a particular user, given this entry from /etc/passwd:
username:x:100:200::/ftp/directory:/sbin/nologin
(where 100 = “username” and 200 = “somegroup”)
Make sure that the user and group permissions of the directory match what is set in /etc/passwd:
$ ls -lah /ftp/directory
drwxrwx--- 4 username somegroup 4.0K Mar 24 23:56 .
Posted this one since I’ve probably solved it, and then promptly forgotten the solution, at least three times.