There can be many reasons for that.
One that I did not know until now is that the symlink itself and the directory it points to have to have the same user as owner (group owner seems to be irrelevant). If not, it won’t work. You can change ownership of the symlink rather than the directory it points to with one of these equivalent commands:
chown -h <filename>
chown --no-dereference <filename>