diff --git a/epicardium/ble/hid_work.c b/epicardium/ble/hid_work.c
index 0f6dbdc9916d31197eab854a6f0156fe9847c04c..f4eeb2e79881dfdaa86432e482c36a85beb65812 100644
--- a/epicardium/ble/hid_work.c
+++ b/epicardium/ble/hid_work.c
@@ -214,6 +214,10 @@ int epic_ble_hid_send_report(uint8_t report_id, uint8_t *data, uint8_t len)
 		return -EIO;
 	}
 
+	if (!queue) {
+		return -EIO;
+	}
+
 	int ret;
 	ret = hid_queue_data(report_id, data, len);
 
diff --git a/epicardium/epicardium.h b/epicardium/epicardium.h
index ca295376f2b0f28653df5a57dcf8e82d46fca2a3..3a2fea1a04e31e3e5c3b5a6d84d1cbbdb7445d88 100644
--- a/epicardium/epicardium.h
+++ b/epicardium/epicardium.h
@@ -2332,7 +2332,7 @@ API(API_BLE_GET_SCAN_REPORT, int epic_ble_get_scan_report(struct epic_scan_repor
  * :return: `0` on success, `1` if the report is queued or a negative value if an error occured. Possible
  *    errors:
  *
- *    - ``-EIO``: There is no host device connected
+ *    - ``-EIO``: There is no host device connected or BLE HID is not enabled.
  *    - ``-EAGAIN``: There is no space in the queue available. Try again later.
  *    - ``-EINVAL``: Either the report_id is out of range or the data is too long.
  *