Uploaded image for project: 'Puppet Enterprise (moved to puppet.atlassian.net)'
  1. Puppet Enterprise (moved to puppet.atlassian.net)
  2. ENTERPRISE-1187

code deploy: unhelpful message when module version missing in private forge



    • Monolithic
    • Debian 7
    • Froyo
    • Needs Assessment
    • Needs Assessment


      Puppet Version: pe-puppet-enterprise-release-2018.1.2.0-1.pe.el7.noarch
      Puppet Server Version: pe-puppetserver-2018.1.0.54-1.el7.noarch
      OS Name/Version: CentOS Linux release 7.5.1804 (Core)


      If using a private forge (Artifactory) to deploy puppet code using puppet code deploy user will encounter error 400 when:

      • The module you are trying to download exists in the private forge
      • ..But the exact module version you are requesting does not


      Desired result
      If a module cannot be downloaded because it doesn't exist, puppet code deploy should:

      • Tell the user which module has a problem
      • Tell the user what the problem is


      Actual result

      Deploying all environments.
      Found 1 environments.
          "environment": "production",
          "error": {
            "details": {
              "corrected-env-name": "production"
            "kind": "puppetlabs.code-manager/deploy-failure",
            "msg": "Errors while deploying environment 'production' (exit code: 1):\nERROR\t -> the server responded with status 400\n"
          "id": 5,
          "status": "failed"


      Steps to reproduce
      1. Setup artifactory (it's the only enterprise grade private forge that works) and click to enable puppet support
      2. Create a control repo with Puppetfile containing only

      mod "puppetlabs-stdlib" , "4.24.0"

      3. Manually import any version of puppetlabs-stdlib execept the one in Puppetfile (otherwise you get a more helpful 404) into artifactory
      4. Configure Puppet to use artifactory. Get the URL from the set-me-up page in artifactory, be sure to use the puppet-local repository so that you will only have access to whatever is manually imported. Hiera:

        baseurl: ''

      5. puppet agent -t to get puppet to reconfigure itself to use private forge
      6. Setup code manager, tokens, etc
      7. puppet code deploy --all --wait should now reproduce the error



      • Failed deployments
      • Painful troubleshooting process
      • Problem is exacerbated by puppet forge not respecting module version to download manually when using firefox with Ublock Origin active (downloads latest version - turn adblocker off to resolve)


      There is nothing in the puppet logs to diagnose the cause of this problem. The best workaround seems to be either to:

      • Comment, push and deploy Puppetfile lines until the cause is found by a process of elimination
      • Compare (manually or otherwise) every entry in Puppetfile with the private forge to ensure the requested version exists




            Unassigned Unassigned
            geoff@declarativesystems.com Geoff Williams
            0 Vote for this issue
            4 Start watching this issue



              Zendesk Support