When a catalog compile fails the puppet report self.configuration_version is set to undef. This value is used to reference puppetdb reports using custom reporting (such as puppet-hipchat)
Ideally even if the config does not change (due to failure / caching / 0 resources chaged) configuration_version should be generated and rotated for each run regardless of success.
If the agent can't get a catalog from the server, then we won't know what the configuration_version is/should be, and can't include it in the report. There is a transaction_uuid in the report which makes it possible to distinguish among agent runs for the same host. Going to close this as won't do