theforeman/foreman · error · Foreman::Exception

The user-data template must be valid YAML for VM customizati

Error message

The user-data template must be valid YAML for VM customization to work.

What it means

Error "The user-data template must be valid YAML for VM customization to work." thrown in theforeman/foreman.

Source

Thrown at app/models/compute_resources/foreman/model/vmware.rb:852

    def build_vmrc_uri(host, vmid, ticket)
      uri = URI::Generic.build(:scheme => 'vmrc',
        :userinfo => "clone:#{ticket}",
        :host     => host,
        :port     => 443,
        :path     => '/',
        :query    => "moid=#{vmid}").to_s
      # VMRC doesn't like brackets around IPv6 addresses
      uri.sub(/(.*)\[/, '\1').sub(/(.*)\]/, '\1')
    end

    def valid_cloudinit_for_customspec?(cloudinit)
      parsed = YAML.safe_load(cloudinit)
      return false if parsed.nil?
      return true if parsed.is_a?(Hash)
      raise Foreman::Exception.new('The user-data template must be a hash in YAML format for VM customization to work.')
    rescue Psych::SyntaxError => e
      Foreman::Logging.exception('Failed to parse user-data template', e)
      raise Foreman::Exception.new('The user-data template must be valid YAML for VM customization to work.')
    end

    def cachekey_with_cluster(key, cluster_id = nil)
      cluster_id.nil? ? key.to_sym : "#{key}-#{cluster_id}".to_sym
    end

    # Generates Secure Boot settings for VMware, based on the provided firmware type.
    #
    # @param firmware [String] The firmware type.
    # @return [Hash] A hash with secure boot settings if applicable.
    def generate_secure_boot_settings(firmware)
      firmware == 'uefi_secure_boot' ? { secure_boot: true } : {}
    end

    # Validates TPM compatibility based on the firmware type and virtual TPM setting.
    # Adds an error if TPM is enabled with BIOS firmware, which is incompatible.
    # This error is later raised as an `ArgumentError` in the `#create_vm` method.
    #

View on GitHub (pinned to 6b05625475)

When it happens

Trigger: Thrown at app/models/compute_resources/foreman/model/vmware.rb:852 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of theforeman/foreman@6b05625475 (2026-08-23). Data as JSON: /api/errors/9b32d63d0a8b2882. Report an issue: GitHub.