| Previous | Next |
| E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE | E_BLUETOOTH_ATT_UNLIKELY |
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
Protocol framing can be correct while the value size is wrong
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH carries ATT error 0x0D. The request reached a valid writable attribute, but the value does not have a permitted length. Fixed-format characteristics reject truncated or oversized structures, while variable-length control points may still impose opcode-specific lengths.
This differs from Invalid PDU: the ATT message can have a legal opcode and framing while its application value is the wrong size. Endianness mistakes, omitted flags, an extra string terminator, incorrect structure packing, or using the size of a pointer instead of the buffer are common client-side causes.
Compare bytes with the profile definition
- Log the complete value and length before the Windows API call.
- Calculate the expected size from the selected command or flags, not from a maximum buffer constant.
- Check packed-field widths and little-endian encoding defined by the profile.
- For prepare writes, verify the assembled final length as well as each fragment boundary.
References
- Bluetooth Core: Invalid Attribute Value Length
- Bluetooth Core: characteristic value formats
- Zephyr: GATT write callbacks and lengths
Looking for a different code? Search another status or error code.