iOS 9.2.1 didDisconnectperipheral not called after cancelPeripheralConnection

I have an issue where iOS 9 behaves differently from iOS 10 despite there being no documented changes. The issue is that upon calling cancelPeripheralConnection on iOS 10 we receive (as is documented) a message on our CBCentralManagerDelgate of didDisconnectperipheral (with no error), exactly as the documentation describes. However on iOS 9 no such message is sent to our delegate. Does anyone know what might be causing this difference in behavior? Or has anyone observed the same?