There are several issues with the puppet service generating error reports when it is being run during the very short uptime cycle when some of our Macs wake up from sleep to re-register their services with ARP Proxy devices on the network [ Wake reason: RTC (Alarm) ].
We can isolate two problems:
1. Race condition with networkd
Network is unavailable during fact/report fetching phase but becomes available before the end of the run to submit the error report.
2. launchd is weird
Cups and SSHd modules fail with "Could not evaluate: No child processes" which is probably due to this error:
puppet-agent: Could not prefetch service provider 'launchd': No child processes
We tried to work around with prerun_command but that did not make any difference.
Wrapping the puppet client with some shell script will probably also not work because the service is already running when the machines wake up from sleep.