diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java index c2fe91c9a2..04e48899e3 100644 --- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java +++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java @@ -5369,7 +5369,8 @@ private void onSessionData( List newSubscriptions = newState.stream() .filter(s -> !currentSubscriptions.contains(s)) .collect(Collectors.toList()); - if (subscribePacketIds.containsKey(newSubscriptions.get(0).id)) + if (!newSubscriptions.isEmpty() && + subscribePacketIds.containsKey(newSubscriptions.get(0).id)) { int packetId = subscribePacketIds.get(newSubscriptions.get(0).id); newSubscriptions.forEach(sub -> subscribePacketIds.remove(sub.id));