"Puppet" feature not found on smart proxy

Problem:
Building a replacement Foreman/Puppet server to replace an older one that is working as expected. The smart proxy has a working Puppet CA feature, but the Puppet feature is not showing up and there don’t appear to be any errors to explain why.

Error: Proxy Puppetmaster has failed to load one or more features (Puppet), 
  check /var/log/foreman-proxy/proxy.log for configuration errors
Error: /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[Puppetmaster]/features: 
  change from ["Logs", "Puppet CA"] to ["Logs", "Puppet", "Puppet CA"] failed: 
  Proxy Puppetmaster has failed to load one or more features (Puppet), 
  check /var/log/foreman-proxy/proxy.log for configuration errors

proxy.log seems happy, nothing to suggest a problem, and I’m not sure where else to look.

2024-06-14T08:17:55  [I] Logging file reopened via USR1 signal
2024-06-14T08:17:55  [I] WEBrick::HTTPServer#start done.
2024-06-14T08:17:56  [I] Successfully initialized 'foreman_proxy'
2024-06-14T08:17:56  [I] Successfully initialized 'puppetca_http_api'
2024-06-14T08:17:56  [I] Successfully initialized 'puppetca_hostname_whitelisting'
2024-06-14T08:17:56  [I] Successfully initialized 'puppetca'
2024-06-14T08:17:56  [I] Successfully initialized 'puppet_proxy_puppet_api'
2024-06-14T08:17:56  [I] Successfully initialized 'puppet'
2024-06-14T08:17:56  [I] Successfully initialized 'logs'
2024-06-14T08:17:56  [I] WEBrick 1.8.1
2024-06-14T08:17:56  [I] ruby 3.0.4 (2022-04-12) [x86_64-linux]
2024-06-14T08:17:56  [I] 
Certificate:
    [..cert info..]
2024-06-14T08:17:56  [I] WEBrick::HTTPServer#start: pid=740687 port=8443
2024-06-14T08:17:56  [I] Smart proxy has launched on 1 socket(s), waiting for requests
2024-06-14T08:18:13 abe8157a [I] Started GET /v2/features 
2024-06-14T08:18:13 abe8157a [I] Finished GET /v2/features with 200 (5.29 ms)

Expected outcome:

The smart proxy would find the Puppet feature, as it currently does on our old server.

Foreman and Proxy versions:

Both 3.10.0

Distribution and version:

RHEL 9

Other relevant data:

We are using theforeman Puppet modules directly rather than using foreman-installer, as we’ve done successfully on older installations.

I’ve tried querying foreman-proxy directly for the available /v2/features, and sure enough puppet is there and ready. So I’m even more unsure why when I refresh features in Foreman, it doesn’t pick this up?

{
...
  "puppetca": {
    "http_enabled": false,
    "https_enabled": true,
    "settings": {
      "puppet_url": "https://puppet.institution.ac.uk:8140",
      "use_provider": [
        "puppetca_hostname_whitelisting",
        "puppetca_http_api"
      ]
    },
    "state": "running",
    "capabilities": []
  },
  "puppet": {
    "http_enabled": false,
    "https_enabled": true,
    "settings": {
      "puppet_url": "https://puppet.institution.ac.uk:8140",
      "use_provider": [
        "puppet_proxy_puppet_api"
      ]
    },
    "state": "running",
    "capabilities": []
  },
...
  "logs": {
    "http_enabled": false,
    "https_enabled": true,
    "settings": {},
    "state": "running",
    "capabilities": []
  },
...
}