iOS app can't receive more than first BLE indication data

I'm developing an iOS app that is supposed to connect to IoT device that push data with an indication (not Notification) via Bluetooth Low Energy every interval (1 min/5 min/15 min)

I've managed to have a working Android App that receives this indication and we have this app working without any issues.

However, my iOS app can't receive more than first indication. This behavior is replicated through AppStore LightBlue and my own custom app with Apple's CoreBluetooth library following Apple Transferring Data Between Bluetooth Low Energy Devices | Apple Developer Documentation with ObjC and Swift 5 library

For more detail: I'm using iOS 14.6 with iPhone mini as a testing device. I've managed to connect, discoverServices, discoverCharacteristic, setNotifyValue, and register didUpdateValue. From my observation it seems that the callback didUpdateValue only got called for the first interaction of sending indication.

I've tried and experiment to setNotifyValue after each didUpdateValue, but I still only got the first message Another experiment is to call readValue after each didUpdateValue callback, but I still only got the first message.

writeValue to IoT seems to have no problem

Has someone has experience like this that can help me figure out why does only the first BLE indication data get sent?

I've read that the main difference between Indication and Notification is ack exists in indication, but not on Notification.

Is it possible that the iOS can't read the indication or doesn't send the indication ack to read after the first data?

Thanks and have a great day!