diff --git a/subsys/bluetooth/host/gatt.c b/subsys/bluetooth/host/gatt.c index 33d8bc8b60bbf1b..73ecee44f5e935c 100644 --- a/subsys/bluetooth/host/gatt.c +++ b/subsys/bluetooth/host/gatt.c @@ -5523,7 +5523,11 @@ int bt_gatt_subscribe(struct bt_conn *conn, */ sys_slist_prepend(&sub->list, ¶ms->node); - return 0; + /* + * Report already if subscription exist so that application does not wait + * for the subscribe callback + */ + return has_subscription ? -EALREADY : 0; } int bt_gatt_resubscribe(uint8_t id, const bt_addr_le_t *peer,