Is writevalue for descriptor limited to 20 bytes?

My BLE device has a UUID 2901 user description characteristic that stores 30 bytes. My iOS BLE central manager app can successfully write up to 20 bytes to that characteristic. After 20bytes, the error "Unknown ATT error" is returned and the data is not stored.


My Android central app writes up to 30 bytes to the same BLE device with no errors. It is my understanding that the Bluetooth specification allows up to 512 bytes.


Does the corebluetooth limit the NSData value for the writevalue:fordescriptor: to 20 bytes ?


Thanks.