diff --git a/hw/virtio-9p.c b/hw/virtio-9p.c
index 7c59988..03cd957 100644
--- a/hw/virtio-9p.c
+++ b/hw/virtio-9p.c
@@ -3597,9 +3597,11 @@ static void submit_pdu(V9fsState *s, V9fsPDU *pdu)
     BUG_ON(pdu->id >= ARRAY_SIZE(pdu_handlers));
 
     handler = pdu_handlers[pdu->id];
-    BUG_ON(handler == NULL);
-
-    handler(s, pdu);
+    if (handler == NULL) {
+        complete_pdu(s, pdu, ENOSYS);
+    } else {
+        handler(s, pdu);
+    }
 }
 
 static void handle_9p_output(VirtIODevice *vdev, VirtQueue *vq)
