MTU size is not getting updated with Android

I have a custom hardware running on nrf52840 and using ncs 2.6.1. I have implemented a custom authentication flow with customer characteristic along with the BLE bonding. I have a custom app for iOS and Android both. I tested my device pairing and bonding with my iOS app and its is working as expected. 

But when I test the same firmware with Android App I am facing issue with pairing. After the connection the device is not able to complete the BLE pairing somehow. To identify the actual issue I debug the operation and from the logs I found that the MTU size is not getting updated when I connect the device with the Android. And that is why my customer service that performs the authentication is not executed.


Regarding to the mobile app that I am using, both the apps are built on the same platform and well tested. And I have another application which is running on legacy Nordic SDK RTOS which is working fine with both the App android and iOS on the same hardware. And my existing application is the Zephyr revision of this legacy application.

So I suspect there is something that is missing after adding the Zephyr as the Application and Hardware both performing well but the same code with Zephyr is creating issue. Below are the application details.

prj.conf

iOS App pairing logs (Running on iPad iPadOS version 18.3.2)

Android App pairing logs (Running on Android tablet version 14)

I am using BLE bonding with security

bt_conn_set_security(conn, BT_SECURITY_L2); with 
                                                       
static struct bt_conn_auth_cb conn_auth_callbacks = {
    .cancel = auth_cancel,
};
Can you please help me with this issue? Is there any known issue in the BLE MTU size update, specifically with Android?