diff --git a/src/parallel_io.c b/src/parallel_io.c
index 3c073ce712c4bdcc97dd70ea6e146d92f2f1b64d..9e9ba6aed93408eb71c96533fe832e080a4e7d08 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -206,6 +206,54 @@ void readArray(hid_t grp, struct io_props props, size_t N, long long N_total,
   const hid_t h_data = H5Dopen2(grp, props.name, H5P_DEFAULT);
   if (h_data < 0) error("Error while opening data space '%s'.", props.name);
 
+/* Parallel-HDF5 1.10.2 incorrectly reads data that was compressed */
+/* We detect this here and crash with an error message instead of  */
+/* continuing with garbage data.                                   */
+#if H5_VERSION_LE(1, 10, 2) && H5_VERSION_GE(1, 10, 2)
+  if (mpi_rank == 0) {
+
+    /* Recover the list of filters that were applied to the data */
+    const hid_t h_plist = H5Dget_create_plist(h_data);
+    if (h_plist < 0)
+      error("Error getting property list for data set '%s'", props.name);
+
+    /* Recover the number of filters in the list */
+    const int n_filters = H5Pget_nfilters(props);
+
+    for (int n = 0; n < n_filters; ++n) {
+
+      unsigned int flag;
+      size_t cd_nelmts = 10;
+      unsigned int* cd_values = malloc(cd_nelmts * sizeof(unsigned int));
+      size_t namelen = 256;
+      char* name = calloc(namelen * sizeof(char));
+      unsigned int filter_config;
+
+      /* Recover the n^th filter in the list */
+      const H5Z_filter_t filter =
+          H5Pget_filter(props, n, &flag, &cd_nelmts, cd_values, namelen, name,
+                        &filter_config);
+      if (filter < 0)
+        error("Error retrieving %d^th (%d) filter for data set '%s'", n,
+              f_filters, props.name);
+
+      /* Now check whether the deflate filter had been applied */
+      if (filter == H5Z_FILTER_DEFLATE)
+        error(
+            "HDF5 1.10.2 cannot correctly read data that was compressed with "
+            "the 'deflate' filter.\nThe field '%s' has had this filter applied "
+            "and the code would silently read garbage into the particle arrays "
+            "so we'd rather stop here.You can:\n - Recompile the code with an "
+            "earlier or older version of HDF5.\n - Use the 'h5repack' tool to "
+            "remove the filter from the ICs.",
+            props.name);
+
+      free(name);
+      free(cd_values);
+    }
+  }
+#endif
+
   /* Create property list for collective dataset read. */
   const hid_t h_plist_id = H5Pcreate(H5P_DATASET_XFER);
   H5Pset_dxpl_mpio(h_plist_id, H5FD_MPIO_COLLECTIVE);