The standard location for the XDG_CACHE_HOME directory is ~/.cache - and so snapd generates AppArmor rules which reference this path. AppArmor however resolves symlinks to their real path name, and so if ~/.cache is a symlink to ~/.config/cache then AppArmor will see the application try and access the file ~/.config/cache/xxx whereas the rule for AppArmor only allows ~/.cache/xxx - as such this is then denied.
Long story short is that it is not supported to have ~/.cache as a symlink - this needs to be a real directory.
The standard location for the XDG_CACHE_HOME directory is ~/.cache - and so snapd generates AppArmor rules which reference this path. AppArmor however resolves symlinks to their real path name, and so if ~/.cache is a symlink to ~/.config/cache then AppArmor will see the application try and access the file ~/.config/cache/xxx whereas the rule for AppArmor only allows ~/.cache/xxx - as such this is then denied.
Long story short is that it is not supported to have ~/.cache as a symlink - this needs to be a real directory.