diff --git a/src/kernel_services/plugin_entry_points/dynamic.ml b/src/kernel_services/plugin_entry_points/dynamic.ml
index bc1a5a5da03d481525203b2ec24fec7f7eb1db50..3efe5f97b041b73cbab392862554201c989f0497 100644
--- a/src/kernel_services/plugin_entry_points/dynamic.ml
+++ b/src/kernel_services/plugin_entry_points/dynamic.ml
@@ -126,7 +126,8 @@ let load_plugin m =
   (* Ok, this is ugly, but Dune Site does not give any way to catch this ...
      Note that we abort with a user error.
   *)
-  with _ -> Klog.abort "Failed to load plug-in %S" m
+  with e -> Klog.abort "Failed to load plug-in %S@.Exception: %s" m
+              (Printexc.to_string e)
 
 let load_module m =
   let base,ext = split_ext m in