I tested your demo and it works as expected. Sadly, I still get random error 0X00030008 when trying to connect. When starting discovering, the gatt client sees the device and tries to connect to it. It then subscribes, receives values a few times and then errors out. Sometimes, it doesn't even manage to subscribe or even connect. After erroring out, it is discovered again by the client and the whole process repeats itself. It sometimes manages to stay subscribed until the device turns itself off. So it is very inconsistent, which I can confirm when I did my tests before.