This can reproduced using:
require 'puppet'
Puppet.initialize_settings
Puppet::Resource::Catalog.indirection.terminus_class = :compiler
Puppet::Util::Log.newdestination(:console)
Puppet::ApplicationSupport.push_application_context(Puppet::Util::RunMode[:server])
catalog = Puppet::Resource::Catalog.indirection.find(Puppet[:certname], environment: :production)
data = catalog.render(:yaml)
catalog2 = Puppet::Resource::Catalog.convert_from(:yaml, data)
catalog2.to_ral