DHCP breaks for clients with static mappings when changing interfaces
DHCP will fail to provide an address for a client that connects to an interface different from the one said client has a static mapping on. Builds prior to late August did not exhibit this behavior and assigned an address properly. Below is an error log from when said client is moved to the interface other that the one it has a static mapping for. 190+ addresses are available (verified from the DHCP leases page) in the specified DHCP range for em0_vlan12.
Oct 17 19:58:11 dhcpd: DHCPDISCOVER from 80:96:b1:e2:c4:XX via em0_vlan12: network 192.168.12.0/24: no free leases
Oct 17 19:58:02 dhcpd: DHCPDISCOVER from 80:96:b1:e2:c4:XX via em0_vlan12: network 192.168.12.0/24: no free leases
Oct 17 19:57:59 dhcpd: DHCPDISCOVER from 80:96:b1:e2:c4:XX via em0_vlan12: network 192.168.12.0/24: no free leases
When the client returns to the interface for which is has a static mapping.
Oct 17 20:03:03 dhcpd: DHCPACK to 192.168.45.161 (80:96:b1:e2:c4:XX) via em0
Oct 17 20:03:03 dhcpd: DHCPINFORM from 192.168.45.161 via em0
Worth checking that all the IP addresses specified in the static mappings fall within the subnet defined for the new interface. Noticing in your post the working 192.168.45… address isn't within the 192.168.12.0/24 'no free leases' range.
They are different subnets on different interfaces the client is moving between. I just checked my static mappings and it appears the reference to the device in question was not updated to the current mac address of the device (it was replaced several weeks ago.) I am going to check my config further but it it was working with builds from a few weeks ago.
I found what appears to be the problem. The following rouge line appeared in my config.
Other interfaces have the following line
<mac_allow>I think I have this fixed now. Thank you :)</mac_allow>