| The compiler may produce an empty catalog if the manifests directory doesn't exist. During puppet apply manifest.pp, the apply application verifies that the manifest.pp file exists, but if a custom fact changes the current working directory, then the parser tries to parse <newdir>/manifest.pp, which doesn't exist. Most surprisingly, puppet apply produces an empty catalog! See PUP-9997. It is also possible to request a catalog from the v4 endpoint with environment "" (empty string), and the compiler similarly tries to parse a non-existent /etc/puppetlabs/code/environments/manifests directory and returns an empty catalog. |