The BLE APIs have functions to check the HI (Hardware Interface) states for behavior. There is not built-in logging functionality, but you can see all of the events that occur when handling the BLE Callback arguments/events. Then, you can just mirror those events/results to a UART output or something similar for logging.
CyBle_ProcessEvents() will handle all events that occured by calling the callback function passed to the CyBle_Start(callback); function.
If you have the data/events logged from the callback handler, then you should see more information on the issue(s).
One thing to note is that Android and other "standard" OS on devices tend to have quirks/rigid behavior involving certain hardware connections (such as bluetooth, usb, etc.) leading to issues that pertain only to specific hardware for specific OS and possibly even for specific versions.
My guess would be that you are missing handling some of the events to send responses to the android app that it is expecting in order to correctly connect.
Thank you very much! This is what I expected from reading the datasheet.
The HCI events in the callback have the lowest-level information, but I have not dug into them deeply enough to know how useful they are. But, if you are looking for more detailed information than what the standard BLE events in the callback provide, then the HCI events would be the next place to look for logging data.
Best of luck,