ESP32 MQTT onMessage Callback never called

I found the line that prints the bold bit. It is part of the sendData function. So has nothing to do with the request:

serializeJson(root, Serial);

I commented this line out and also alternate between state "open" and "close" to see if I get updates in the "update/delta".

void loop()
{
  if (!client.connected())
  {
    checkWiFiThenMQTT();
  }
  else
  {
    client.loop();
    if (millis() - lastMillis > 5000)
    {
      lastMillis = millis();
      sendData("closed");
      delay(2000);
      sendData("open");
    }
  }
}

I get the following output:

Attempting to connect to SSID: dehei.local...ok!
MQTT connecting connected!
Requesting Shadow [$aws/things/chicken-door/shadow/name/door/get]: 
Sending {"state":{"reported":{"value":"closed"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Sending {"state":{"reported":{"value":"open"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"closed"}},"metadata":{"reported":{"value":{"timestamp":1638440442}}},"version":628,"timestamp":1638440442}
Received [$aws/things/chicken-door/shadow/name/door/update]: {"state":{"reported":{"value":"open"}}}
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"open"}},"metadata":{"reported":{"value":{"timestamp":1638440444}}},"version":629,"timestamp":1638440444}
Sending {"state":{"reported":{"value":"closed"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Sending {"state":{"reported":{"value":"open"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Received [$aws/things/chicken-door/shadow/name/door/update]: {"state":{"reported":{"value":"closed"}}}
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"closed"}},"metadata":{"reported":{"value":{"timestamp":1638440447}}},"version":630,"timestamp":1638440447}
Received [$aws/things/chicken-door/shadow/name/door/update]: {"state":{"reported":{"value":"open"}}}
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"open"}},"metadata":{"reported":{"value":{"timestamp":1638440449}}},"version":631,"timestamp":1638440449}
Sending {"state":{"reported":{"value":"closed"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Sending {"state":{"reported":{"value":"open"}}} to $aws/things/chicken-door/shadow/name/door/update: 
Received [$aws/things/chicken-door/shadow/name/door/update]: {"state":{"reported":{"value":"closed"}}}
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"closed"}},"metadata":{"reported":{"value":{"timestamp":1638440452}}},"version":632,"timestamp":1638440452}
Received [$aws/things/chicken-door/shadow/name/door/update]: {"state":{"reported":{"value":"open"}}}
Received [$aws/things/chicken-door/shadow/name/door/update/accepted]: {"state":{"reported":{"value":"open"}},"metadata":{"reported":{"value":{"timestamp":1638440454}}},"version":633,"timestamp":1638440454}

What I take from this is:

  1. get shadow does not work
  2. update/delta does not work (Device Shadow MQTT topics - AWS IoT Core)
  3. update/accepted works as expected