| Previous | Next |
| PEER_E_FW_DECLINED | E_BLUETOOTH_ATT_READ_NOT_PERMITTED |
E_BLUETOOTH_ATT_INVALID_HANDLE
The handle does not identify a current attribute
E_BLUETOOTH_ATT_INVALID_HANDLE carries ATT error 0x01. Attribute handles are server-assigned 16-bit identifiers; handle zero is invalid, and a handle learned during an earlier discovery is not a permanent UUID-like identity. Firmware changes, service-changed processing, reconnection to another device instance, or a cached database can make a previously valid number point nowhere.
This status is more specific than a missing characteristic in application logic. It means the remote ATT server rejected the handle contained in the request. Repeating the same request without rediscovery normally reproduces the failure, while clearing only the Windows pairing record may not refresh an application-level handle cache.
Evidence that separates a stale handle from the wrong device
- Record the peer identity, service UUID, characteristic UUID, handle, and the discovery generation that produced it.
- Rediscover the affected service instead of guessing a nearby handle value.
- Honor the GATT Service Changed indication and invalidate cached handle ranges that it covers.
- Check that concurrent connections have not mixed handles belonging to different peripherals.
References
- Bluetooth Core: ATT handles and Error Response
- Bluetooth Core: GATT database and Service Changed
- Apple Core Bluetooth: ATT error mapping
Looking for a different code? Search another status or error code.