| Previous | Next |
| E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND | E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE |
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
Long reads are not a generic retry for every value
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG is ATT error 0x0B. Read Blob continues a value after an initial read reaches the response payload limit, but the server can reject blob access for an attribute that does not support the long form. The failure often follows a client that issues Read Blob unconditionally instead of only after receiving a full-sized first fragment.
The same principle applies to procedures whose semantics require a long or queued value. The presence of an offset parameter in an API does not guarantee that the selected attribute accepts offset-based access.
Choose the procedure from observed response behavior
- Begin with the profile-defined ordinary read rather than a blob request.
- Continue only when the first response fills the maximum value bytes available for the negotiated MTU.
- Do not use long access on fixed-format declarations and descriptors unless the specification permits it.
- Verify that an API wrapper did not convert a normal read into an offset read.
References
- Bluetooth Core: Read Blob and Attribute Not Long
- Zephyr: GATT long-read procedure
- Apple Core Bluetooth: attributeNotLong
Looking for a different code? Search another status or error code.