puppet fileserver serve non-module file
Solution 1:
The file description should have the full path contained:
file { '/etc/puppet/files/gpg.key'
...
Check if files on server are accessible by the user that runs the puppet master. Also check if puppet is allowed to descend into the specified directory. If it is a gpg.key file, there is a very high chance that access mode is 0600 and puppet is not allowed to access it (maybe owned by root or somebody else).