On a recent new server deployment, I ran across the error that puppet could not find the fqdn fact:
Warning: Could not retrieve fact fqdn
Warning: Host is missing hostname and/or domain: $short_hostname
This was on an ubuntu 14.04 host running puppet 3.4.3 (ancient).
The fix was to ensure that the FQDN was in the hosts file before the short name, ie:
10.5.6.44 $fqdn $short_hostname
No more errors.