PUBREL-PUBACK-PUBCOMP messages to broker

Hi,

I'm using TTMSMQTTClient (2.0.8.0) in a VCL application. My mqttclient connects and subscribes to a couple of topic. I do not publish any messages, I only handle the event OnRawPacketReceived and sometimes change topic subscription by unsubscribing and subscribing.

When I do subscribe, I do

  mqqtClient.Subscribe('ATopic')

This should use the default QoS level = 0

In the data log of my MQTT Broker (CloudMQTT) is see messages to the MQTT Broker from my VCL application of type PUBREL / PUBACK / PUBCOMP like this:

2024-09-17 20:07:42: Received PUBREL from MY-APPLICATION_UNIQUEID (Mid: 30055)
2024-09-17 20:07:42: Received PUBACK from MY-APPLICATION_UNIQUEID (Mid: 21588)
2024-09-17 20:07:42: Received PUBCOMP from MY-APPLICATION_UNIQUEID (Mid: 29539)

Googling for information about mqtt messages like PUBREL / PUBACK / PUBCOMP, in indcates QoS level different than 0 are being involved.

Additional information: All messages Retained on the Broker has QoS level = 0

May I ask if anyone can maybe tell me why my VCL application apparently is sending messages to the MQTT Broker when I subscribe with Qos=0 and do not Publish messages?

Acknowledge of message receipt?

With QoS=0 there should be no such acknowledgement I thought. Maybe I'm wrong...

When you say "Acknowledge of message receipt?", did you mean my client application sending confirmation when receiving messages? If so, my question would be if the mqttClient does that under the hood?

I have overlooked you were on QoS = 0.
But I cannot see that PUBACK is sent when QoS = 0
In the code, it literally is

  if (packet.FixedHeader.QoS = qosAtLeastOnce) then
    ackPacket := TTMSMQTTPubAckPacket.Create(PacketId, FProtocolVersion);

so, are you 100% sure you are at QoS = 0 all the time?

Thank you for the followup,

I'm pretty sure I'm at QoS=0, but I'll doublecheck and get back to you.