Okay. I figured out my issue.
I'm not a developer so this is probably ugly, but came up with:
begin
fqdn = scope.catalog.tags[4]
rescue
fqdn = scope['fqdn'] if scope.has_key?('fqdn')
Hiera.debug("trying mcollective")
end
Hiera.debug("got fqdn #{fqdn}")
That fqdn with both:
puppet master --debug --compile FQDN
and
hiera -d -c /etc/puppet/hiera.yaml -m FQDN