Scenario: We have 2 controllers WLC-1 and WLC-2 and 1 AP's on each controller AP-1 and Ap-2. If AP-1 is disabled the Laptop connected to AP-1 locally will roam to AP-2 on WLC-2. This then registers as a foreign client on WLC-2 and WLC-1 marks it as an Anchor. However if WLC-1 was rebooted suddenly the Anchor foreign relationship is lost and the Laptop losses connection. The laptop needs be forced to re-connect again. My question is shouldn't the Laptop which registered on the WLC-2 as foreign client automatically become local when WLC-1 goes down without having to loose its connection and users forced to re-connect ?
What you are observing is how the system is designed. There are 2 primary reasons we don't convert the client on the foreign WLC to local when the anchor is lost.
(1) the anchor controller contains the master record for the client, including it's security context (e.g. PMKIDs). So when the anchor is lost, so is that master record and we have to force a full re-authentication of the client.
(2) the client's going to need to be disconnected anyway since it'll need to get a new IP address on the new WLC.
You shouldn't have to force the laptop to re-authenticate and re-connect. You should check the drivers and versions of you supplicants if the laptops not automatically re-authenticating and re-connecting.