Environment
Forti AP U431F – WiFi 6/AX enabled access points
FortiGate Firewall is used as Wireless Controller
FortiGate Firewall and Forti AP are on different VLAN/Networks.
DHCP Option 138 is configured on Windows Server 2022 to point to the FortiGate (Wireless Controller) address
Error
You can see the Image ID is “MERU SECONDARY“
[01/01 00:02:10.650] MGMT: WDS STA VAP not present
[01/01 00:02:10.650] INIT: Discovery: Changed infrastructure mode to Wired (from Mesh-PnP)
[01/01 00:02:10.651] INIT: WdsDiscoveryLoop: Ethernet UP [delay: 0 msecs]
Failed to read fips value in flash config
[01/01 00:02:10.651] INIT: Retrying Discovery ... (0 of 2)
[01/01 00:02:10.651] INIT: Discovering network infrastructure
[01/01 00:02:10.651] INIT: DiscoveryLoop.1349 Discovery type L2.
[01/01 00:02:10.651] INIT: Running dual mode discovery
Sending L2 Discovery frame, CTRL addr: ff:ff:ff:ff:ff:ff
Sent discovery frame
CwDiscoveryTask.745 CwDiscoveryTask:: Interface does not have the IP
FcpTask:: Interface does not have the IP
Sending L2 Discovery frame, CTRL addr: ff:ff:ff:ff:ff:ff
Sent discovery frame
CwDiscoveryTask.745 CwDiscoveryTask:: Interface does not have the IP
FcpTask:: Interface does not have the IP
Sending L2 Discovery frame, CTRL addr: ff:ff:ff:ff:ff:ff
Sent discovery frame
CwDiscoveryTask.745 CwDiscoveryTask:: Interface does not have the IP
FcpTask:: Interface does not have the IP

Solution
You can do it via GUI if it gets IP via DHCP or using the default IP 192.168.1.2

If you have console access, you can press “Control + c” during the initial boot process and input the default U-Boot Password “fap22b1!$”.
-------------------------------
FortiAP-PU431F (Oct 22 2020 - 00:53:46)
Ver:00000003
Serial Number:PU431Fxxxxxxxxxx
Region Code:N
-------------------------------
Hit CTRL+c to abort u-boot in 3 seconds
Please enter password: here is the place to paste the password
MG link 1G 0
u-boot>
u-boot>
u-boot>
u-boot> print_boot
meru default image status:
len 0x2640014, crc 0x0
AP version is 0.0.0
image status: New image
image try count is 0
meru primary image status:
len 0x0, crc 0x0
AP version is 0.0.0
unknow image status
image try count is 0
fap default image status:
len 0x2e00014, crc 0xb37aef52
AP version is 6.2.dc
image status: New image
image try count is 0
Image ID : meru default image
Previous Image ID : meru default image
Auto-learning : Turn ON
u-boot>
u-boot>
u-boot>
u-boot>
u-boot> set_image_id
Usage:
set_image_id, - set image id:meru_default|meru_primary|fap_default|fap_primary
u-boot> set_image_id fap_primary
Erasing at 0xc0000 -- 100% complete.
u-boot> print_boot
meru default image status:
len 0x2640014, crc 0x0
AP version is 0.0.0
image status: New image
image try count is 0
fap default image status:
len 0x2e00014, crc 0xb37aef52
AP version is 6.2.dc
image status: New image
image try count is 0
fap primary image status:
len 0x0, crc 0x0
AP version is 0.0.0
unknow image status
image try count is 0
Image ID : fortinet primary image
Previous Image ID : meru default image
Auto-learning : Turn ON
u-boot> reset
Forti AP image selection in U-Boot
4 x boot Images exist in Forti AP U431F access points
- meru_primary. Used only when you have dedicated hardware Fortinet Wireless LAN Controller (WLC)
- meru_default. Backup image as “meru_primary”
- fap_primary. Used when you use FortiGate Firewall or Forti Cloud as the controller
- fap_default. Backup image for “fap_primary”