| Previous | Next |
| E_BLUETOOTH_ATT_READ_NOT_PERMITTED | E_BLUETOOTH_ATT_INVALID_PDU |
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
A discovered value is not necessarily writable
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED represents ATT error 0x03. The server found the target attribute but its permissions exclude writing. Common causes include attempting to modify a read-only measurement, writing a characteristic declaration rather than its value, or treating a notification-only data path as a writable command endpoint.
Write Request, Write Command, signed write, prepare write, and descriptor writes are not interchangeable. A profile can permit one procedure and reject another, and a characteristic property advertised by discovery must be interpreted together with the higher-level service specification.
Checks that are more useful than blind retries
- Compare the chosen write API and flags with the characteristic properties reported by discovery.
- Verify whether the profile requires a Write Request with response or a Write Command without response.
- For notifications, write the Client Characteristic Configuration descriptor rather than the characteristic value.
- Treat a stable permission failure as a contract mismatch, not as radio interference.
References
- Bluetooth Core: characteristic write properties
- Bluetooth Core: ATT write procedures
- Microsoft: Windows Bluetooth LE APIs
Looking for a different code? Search another status or error code.