As per the current implementation of PSoC4 BLE upgradable stack OTA example project, bonding data is not shared between "Application" and "Stack" projects.
So that, user has to connect and bond again with stack project before performing firmware update over the air.
Steps to be followed to perform firmware update over the air
Both "Application" and "Stack" projects store bonding data at different locations. That is the reason why user need to connect and bond with the stack project before performing firmware update over the air.
The solution is to make the "Application" and "Stack" projects share the bonding data between them. Below steps are followed to share the bonding data between "Application" and "Stack" projects. Both “Application” and “Stack” projects store the bonded device list in the structure “cyBle_flashStorage” separately.
Changes made to the Upgradable Stack OTA example project.
Updated project is attached with this post.