Puppet Client - Could not evaluate: undefined method `[]' for nil:NilClass

Auf einem neu installierten Ubuntu System Version 16.04.1 LTS zeigt Puppet bei jedem Durchlauf einen Fehler der in etwa so aussieht:

Aug  39 09:24:58 satyr puppet-agent[15820]: Starting Puppet client version 3.8.5
Aug  39 09:25:05 satyr puppet-agent[15825]: (/Stage[main]/Common_unix/Service[ssh]) Could not evaluate: undefined method `[]' for nil:NilClass
Aug  39 09:25:06 satyr puppet-agent[15825]: Finished catalog run in 1.71 seconds

oder auch:

Could not evaluate: Execution of '/sbin/status ssh' returned 1: status: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

auf dem Puppet Server ist hierbei z.B. folgendes Manifest definiert:
...  
# restart sshd for changes to become effective
service { 'ssh':
  ensure => 'running',
  enable => true,
}
...
Laut offizieller Dokumentation sollte eigentlich systemd als Provider für Ubuntu 16.04 gewählt werden. Offenbar liegt hier der Grund für das Problem. Puppet wählt "upstart" als Provider.

Um das mit einem Quick and dirty Workaround zu beheben kann man obiges Snippet gegen das folgende im Puppet Manifest ersetzen:
# restart sshd for changes to become effective
if $::operatingsystem == 'Ubuntu' {
  case $::operatingsystemmajrelease {
    '14.04': { $serviceprovider = 'upstart' }
    '16.04': { $serviceprovider = 'systemd' }
  }
}
service { 'ssh':
  ensure => 'running',
  enable => true,
  provide => $serviceprovider,
}