diff --git a/model.ml b/model.ml
index 19ca3828460d54ab60cbe0d53860673f6e0a05bb..8fc7eb5e6e5fa2e3e858c2a4198d5974f56a2920 100644
--- a/model.ml
+++ b/model.ml
@@ -153,26 +153,28 @@ let handle_nnet_range_values n_inputs in_channel =
 let retrieve_nnet_metadata filename =
   let open Result in
   let in_channel = Stdlib.open_in filename in
-  handle_nnet_header filename in_channel >>= fun () ->
-  handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) ->
-  handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes ->
-  handle_nnet_unused_flag in_channel >>= fun () ->
-  handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values ->
-  handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values ->
-  handle_nnet_mean_values n_ins in_channel >>= fun mean_values ->
-  handle_nnet_range_values n_ins in_channel >>= fun range_values ->
-  Stdlib.close_in in_channel;
-  Ok
-    { n_layers = n_ls;
-      n_inputs = n_ins;
-      n_outputs = n_outs;
-      max_layer_size = max_l_size;
-      layer_sizes;
-      min_input_values;
-      max_input_values;
-      mean_values;
-      range_values; }
-
+  try
+    handle_nnet_header filename in_channel >>= fun () ->
+    handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) ->
+    handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes ->
+    handle_nnet_unused_flag in_channel >>= fun () ->
+    handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values ->
+    handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values ->
+    handle_nnet_mean_values n_ins in_channel >>= fun mean_values ->
+    handle_nnet_range_values n_ins in_channel >>= fun range_values ->
+    Stdlib.close_in in_channel;
+    Ok
+      { n_layers = n_ls;
+        n_inputs = n_ins;
+        n_outputs = n_outs;
+        max_layer_size = max_l_size;
+        layer_sizes;
+        min_input_values;
+        max_input_values;
+        mean_values;
+        range_values; }
+  with Failure msg ->
+    Error (Format.sprintf "Unexpected error: %s." msg)
 
 (* Generic model. *)