Can't submit workstation provisioning after discovery

Problem:
The issue exists when we are trying to provision workstations. All our workstations are Dell (3620, 3610, 5810 etc.). We don’t have this issue with bare metal servers and VMware. We use ipxe with UEFI.
“Some of the interfaces are invalid. Please check the table below.”

Foreman and Proxy versions:
Foreman 2.3.3
Katello 3.18.2.1
foreman_discovery 16.3.4


This is just after Discovery

This is after “Submit”

I haven’t found anything interesting in the logs:

2021-05-13T08:38:13 [I|app|21464749] Started GET "/discovered_hosts/mac509a4c5293f3/refresh_facts" for 127.0.0.1 at 2021-05-13 08:38:13 -0500
2021-05-13T08:38:13 [I|app|21464749] Processing by DiscoveredHostsController#refresh_facts as HTML
2021-05-13T08:38:13 [I|app|21464749]   Parameters: {"id"=>"mac509a4c5293f3"}
2021-05-13T08:38:13 [D|tax|21464749] Current location set to none
2021-05-13T08:38:13 [D|tax|21464749] Current organization set to OUR ORGANIZATION
2021-05-13T08:38:13 [D|app|21464749] Connecting to proxy, setting up SSL client cert
2021-05-13T08:38:13 [D|app|21464749] Image API GET https://proxy-foreman02.ourdomain.com:9090/discovery/10.48.67.55/inventory (path=/facter, payloa
d={})
2021-05-13T08:38:15 [I|app|21464749] Import facts for 'mac509a4c5293f3' completed. Added: 0, Updated: 8, Deleted 13 facts
2021-05-13T08:38:15 [D|tax|21464749] Current location set to Europe/MAR
2021-05-13T08:38:15 [D|tax|21464749] Current organization set to OUR ORGANIZATION
2021-05-13T08:38:15 [D|app|21464749] skipping interface with identifier 'lo' since it was matched by 'ignored_interface_identifiers' setting 
2021-05-13T08:38:15 [D|app|21464749] We have following interfaces 'enp0s25' based on facts
2021-05-13T08:38:15 [D|app|21464749] Interface enp0s25 facts: {"macaddress"=>"50:9a:4c:52:93:f3", "mtu"=>1500, "bindings"=>[{"address"=>"10.48.67.55", "netma
sk"=>"255.255.255.0", "network"=>"10.48.67.0"}], "bindings6"=>[{"address"=>"fe80::529a:4cff:fe52:93f3", "netmask"=>"ffff:ffff:ffff:ffff::", "network"=>"fe80:
:", "scope6"=>"link"}], "ipaddress"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0", "ipaddress6"=>"fe80::529a:4cff:fe52:93f3", "netmask6
"=>"ffff:ffff:ffff:ffff::", "network6"=>"fe80::", "scope6"=>"link"}
2021-05-13T08:38:15 [D|app|21464749] Discovery fact parser detected primary interface: ["enp0s25", {"macaddress"=>"50:9a:4c:52:93:f3", "mtu"=>1500, "bindings
"=>[{"address"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0"}], "bindings6"=>[{"address"=>"fe80::529a:4cff:fe52:93f3", "netmask"=>"ffff
:ffff:ffff:ffff::", "network"=>"fe80::", "scope6"=>"link"}], "ipaddress"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0", "ipaddress6"=>"
fe80::529a:4cff:fe52:93f3", "netmask6"=>"ffff:ffff:ffff:ffff::", "network6"=>"fe80::", "scope6"=>"link", "keep_subnet"=>true, "virtual"=>false}]
2021-05-13T08:38:15 [D|app|21464749] Saving enp0s25 NIC for host mac509a4c5293f3
2021-05-13T08:38:15 [I|app|21464749] Detected IPv4 subnet: MAR Workstations Build VLAN 67 with taxonomy ["OUR ORGANIZATION"]/["MAR"]
2021-05-13T08:38:15 [I|app|21464749] Assigned location: Europe/MAR
2021-05-13T08:38:15 [I|app|21464749] Assigned organization: OUR ORGANIZATION
2021-05-13T08:38:15 [D|not|21464749] Notification event: UINotifications::NewHost - checking for notifications
2021-05-13T08:38:15 [I|app|21464749] Import facts for 'mac509a4c5293f3' completed. Added: 0, Updated: 0, Deleted 0 facts
2021-05-13T08:38:15 [D|tax|21464749] Current location set to Europe/MAR
2021-05-13T08:38:15 [D|tax|21464749] Current organization set to OUR ORGANIZATION
2021-05-13T08:38:15 [D|app|21464749] skipping interface with identifier 'lo' since it was matched by 'ignored_interface_identifiers' setting 
2021-05-13T08:38:15 [D|app|21464749] We have following interfaces 'enp0s25' based on facts
2021-05-13T08:38:15 [D|app|21464749] Interface enp0s25 facts: {"macaddress"=>"50:9a:4c:52:93:f3", "mtu"=>1500, "bindings"=>[{"address"=>"10.48.67.55", "netma
sk"=>"255.255.255.0", "network"=>"10.48.67.0"}], "bindings6"=>[{"address"=>"fe80::529a:4cff:fe52:93f3", "netmask"=>"ffff:ffff:ffff:ffff::", "network"=>"fe80:
:", "scope6"=>"link"}], "ipaddress"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0", "ipaddress6"=>"fe80::529a:4cff:fe52:93f3", "netmask6
"=>"ffff:ffff:ffff:ffff::", "network6"=>"fe80::", "scope6"=>"link"}
2021-05-13T08:38:15 [D|app|21464749] Discovery fact parser detected primary interface: ["enp0s25", {"macaddress"=>"50:9a:4c:52:93:f3", "mtu"=>1500, "bindings
"=>[{"address"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0"}], "bindings6"=>[{"address"=>"fe80::529a:4cff:fe52:93f3", "netmask"=>"ffff
:ffff:ffff:ffff::", "network"=>"fe80::", "scope6"=>"link"}], "ipaddress"=>"10.48.67.55", "netmask"=>"255.255.255.0", "network"=>"10.48.67.0", "ipaddress6"=>"
fe80::529a:4cff:fe52:93f3", "netmask6"=>"ffff:ffff:ffff:ffff::", "network6"=>"fe80::", "scope6"=>"link", "keep_subnet"=>true, "virtual"=>false}]
2021-05-13T08:38:16 [I|app|21464749] Detected IPv4 subnet: MAR Workstations Build VLAN 67 with taxonomy ["OUR ORGANIZATION"]/["MAR"]
2021-05-13T08:38:16 [I|app|21464749] Assigned location: Europe/MAR
2021-05-13T08:38:16 [I|app|21464749] Assigned organization: OUR ORGANIZATION
2021-05-13T08:38:16 [D|not|21464749] Notification event: UINotifications::NewHost - checking for notifications
2021-05-13T08:38:16 [I|app|21464749] Redirected to https://foreman/discovered_hosts
2021-05-13T08:38:16 [I|app|21464749] Completed 302 Found in 2402ms (ActiveRecord: 162.9ms | Allocations: 330168)




Body: 
{"network":"10.48.67.0","network_type":"IPv4","cidr":24,"mask":"255.255.255.0","priority":null,"vlanid":null,"mtu"
:1500,"gateway":"10.48.67.1","dns_primary":"10.50.64.253","dns_secondary":"10.10.64.251","from":"10.48.67.30","to":"10.48.67.240","created_at":"2019-12-26 16
:33:14 UTC","updated_at":"2021-05-12 13:46:35 UTC","ipam":"None","boot_mode":"Static","id":11,"name":"MAR Workstations Build VLAN 67","description":"","netwo
rk_address":"10.48.67.0/24","dhcp_id":null,"dhcp_name":null,"tftp_id":2,"tftp_name":"proxy-foreman02.ourdomain.com","httpboot_id":2,"httpboot_name"
:"proxy-foreman02.ourdomain.com","externalipam_id":null,"externalipam_name":null,"dns_id":1,"template_id":2,"template_name":"proxy-foreman02.tra
nsmarketgroup.com","bmc_id":1,"bmc_name":"foreman02.ourdomain.com","discovery_id":2,"discovery_name":"proxy-foreman02.ourdomain.com"
,"dhcp":null,

"tftp":{"name":"proxy-foreman02.ourdomain.com","id":2,"url":"https://proxy-foreman02.ourdomain.com:9090"},

"httpboot":{"name":"proxy-foreman02.ourdomain.com","id":2,"url":"https://proxy-foreman02.ourdomain.com:9090"},
"externalipam":null,"dns":{"name":"foreman02.ourdomain.com","id":1,

"url":"https://foreman02.ourdomain.com:9090"},

"template":{"name":"proxy-foreman02.ourdomain.com","id":2,"url":"https://proxy-foreman02.ourdomain.com:9090"},"bmc":{"name":"foreman02.ourdomain.com","id":1,"url":"https://foreman02.ourdomain.com:9090"},
"discovery":{"name":"proxy-foreman02.ourdomain.com","id":2,"url":"https://proxy-foreman02.ourdomain.com:9090"},"remote_execution_proxies":[{"name":"proxy-foreman02.ourdomain.com","id":2}],

"domains":[{"id":1,"name":"ourdomain.com"}],

"interfaces":[{"id":3536,"name":"mac509a4c531467","ip":"10.48.67.51","ip6":null,"mac":"50:9a:4c:53:14:67","mtu":1500,"fqdn":"mac509a4c531467","identifier":"enp0s31f6","primary":true,"provision":true,"type":"interface"},

{"id":3538,"name":"mac484d7eeea574","ip":"10.48.67.53","ip6":null,"mac":"48:4d:7e:ee:a5:74","mtu":1500,"fqdn":"mac484d7eeea574","identifier":"enp0s31f6","primary":true,"provision":true,"type":"interface"},

{"id":3540,"name":"mac509a4c5293f3","ip":"10.48.67.55","ip6":null,"mac":"50:9a:4c:52:93:f3","mtu":1500,"fqdn":"mac509a4c5293f3","identifier":"enp0s25","primary":true,"provision":true,"type":"interface"},

{"id":3388,"name":"mar-ws-tst04.ourdomain.com","ip":"10.48.67.52","ip6":"","mac":"64:00:6a:50:a9:41","mtu":1500,"fqdn":"mar-ws-mars04.ourdomain.com","identifier":"enp0s25","primary":true,"provision":true,"type":"interface"},

{"id":3389,"name":"mar-ws-tst05.ourdomain.com","ip":"10.48.67.50","ip6":"","mac":"64:00:6a:7c:bf:27","mtu":1500,"fqdn":"mar-ws-mars05.ourdomain.com","identifier":"enp0s25","primary":true,"provision":true,"type":"interface"},

{"id":3333,"name":"mar-ws-tst02.ourdomain.com","ip":"10.48.67.50","ip6":null,"mac":"64:00:6a:50:c0:74","mtu":1500,"fqdn":"mar-ws-mars02.ourdomain.com","identifier":"eth0","primary":true,"provision":true,"type":"interface"}],

"parameters":[],"locations":[{"id":25,"name":"MAR","title":"Europe/MAR","desc
ription":""}],"organizations":[{"id":1,"name":"OUR ORGANIZATION","title":"OUR ORGANIZATION","description":""}]}

You need to hit the Edit button and see the error in there which explains what you are missing.

Before I click submit everything is correct, and all fields are filled in. When I click “Submit” IP fields are blank and I see this error and nothing else: “Some of the interfaces are invalid. Please check the table below.”

You need to assign a subnet that has a IPAM set to DHCP or DB, otherwise you need to enter IP manually.

Thank you for your advice but that’s not the case. As I mentioned before we don’t have this issue when we provision servers or virtual machines. They can be in the same subnet as well and they work fine without any issues of assigning IP. Unfortunately, there is no info in logs on what is happening and why it’s wiping out the IPv4 field. The issue exists only for workstations in our case.

Foreman discovery makes “unused_ip” call via associated Subnet when provisioning. You must be missing some information in a hostgroup, check taxonomy. If you say it works without Discovery that’s really weird, discovery simply assign a hostgroup, calls unused_ip for the interface and saves the host.

It’s kind of weird. I “solved” this one by myself. In Infrastructure -> Subnets, I had to change IPAM from None to DHCP and now it’s working. Before, we were using IPAM -> None for all our subnets and it was working completely fine.

I am assuming you haven’t read upgrade notes, because we do explain why this changed there. :slight_smile: