theforeman/foreman · error · Foreman::Exception

Failed to deploy vm %{name}, fault: %{e}

Error message

Failed to deploy vm %{name}, fault: %{e}

What it means

Error "Failed to deploy vm %{name}, fault: %{e}" thrown in theforeman/foreman.

Source

Thrown at app/models/compute_resources/foreman/model/openstack.rb:187

      args[:security_groups].delete_if(&:blank?) if args[:security_groups].present?
      format_scheduler_hint_filter(args) if args[:scheduler_hint_filter].present?
      vm = super(args)
      if network.present?
        address = allocate_address(network)
        assign_floating_ip(address, vm)
      end
      vm
    rescue => e
      message = JSON.parse(e.response.body)['badRequest']['message'] rescue (e.to_s)
      logger.warn "failed to create vm: #{message}"
      destroy_vm vm.id if vm
      volume_client.volumes.delete(@boot_vol_id) if args[:boot_from_volume]
      raise message
    end

    def vm_ready(vm)
      vm.wait_for { ready? || failed? }
      raise Foreman::Exception.new(N_("Failed to deploy vm %{name}, fault: %{e}"), { :name => vm.name, :e => vm.fault['message'] }) if vm.failed?
    end

    def destroy_vm(uuid)
      vm           = find_vm_by_uuid(uuid)
      floating_ips = vm.all_addresses
      floating_ips.each do |address|
        client.disassociate_address(uuid, address['ip']) rescue true
        client.release_address(address['id']) rescue true
      end
      super(uuid)
    rescue ActiveRecord::RecordNotFound
      # if the VM does not exists, we don't really care.
      true
    end

    def console(uuid)
      vm = find_vm_by_uuid(uuid)
      vm.console.body.merge({'timestamp' => Time.now.utc})

View on GitHub (pinned to 6b05625475)

When it happens

Trigger: Thrown at app/models/compute_resources/foreman/model/openstack.rb:187 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/18cda4cdc2382ddc. Report an issue: GitHub.