Agent can't resolve foreman, but somehow submits a report of that failure

I’m getting rather peculiar reports from some hosts, that essentially say that the puppet run failed because the foreman server couldn’t be resolved. But I have to wonder how on earth did foreman get the report then??

Here’s what the report looks like:

warning 	Puppet 	Unable to fetch my node definition, but the agent run will continue:
warning 	Puppet 	Failed to open TCP connection to <foreman-domain>:8140 (getaddrinfo: Temporary failure in name resolution)
err 	/File[/var/cache/puppet/facts.d] 	Failed to generate additional resources using 'eval_generate': Failed to open TCP connection to <foreman-domain>:8140 (getaddrinfo: Temporary failure in name resolution)
err 	/File[/var/cache/puppet/facts.d] 	Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: Failed to open TCP connection to <foreman-domain>:8140 (getaddrinfo: Temporary failure in name resolution)
err 	/File[/var/cache/puppet/lib] 	Failed to generate additional resources using 'eval_generate': Failed to open TCP connection to <foreman-domain>:8140 (getaddrinfo: Temporary failure in name resolution)
err 	/File[/var/cache/puppet/lib] 	Could not evaluate: Could not retrieve file metadata for puppet:///plugins: Failed to open TCP connection to <foreman-domain>:8140 (getaddrinfo: Temporary failure in name resolution)
warning 	Puppet 	Downgrading to PSON for future requests
err 	Puppet 	Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Unsupported facts format
notice 	Puppet 	Applied catalog in 31.47 seconds

I’m not expecting anyone to solve this for me. For all I can tell we have intermittent problems with DNS resolution on some hosts, which is not the first time. But I’d very much like some theories about how on earth these reports get to foreman if foreman cannot be resolved?? That’s what confuses me to no end about this issue. Do reports get re-delivered once contact is re-established?