diff --git a/edosl0util/jpssrdr.py b/edosl0util/jpssrdr.py
index 9654c7315cc5e323f7380288b8eb3d45a6d15cf0..beef1e2f2bd22c6106d990423725a4946cf52a92 100644
--- a/edosl0util/jpssrdr.py
+++ b/edosl0util/jpssrdr.py
@@ -191,15 +191,23 @@ def _rdrs_for_packet_dataset(group):
     rdrs = []
     if group:
         for name, buf in _generate_packet_datasets(group):
-            if buf.shape[0] < c.sizeof(StaticHeader):
-                LOG.warn('Not enough bytes for %s static header', name)
+            try:
+                rdr = _decode_rdr_blob(buf)
+            except ValueError as e:
+                LOG.warn('{} ({})'.format(e.message, name))
                 continue
-            header = StaticHeader.from_buffer(buf)
-            apids = _read_apid_list(header, buf)
-            rdrs.append(CommonRdr(buf, header, list(apids)))
+            rdrs.append(rdr)
     return rdrs
 
 
+def _decode_rdr_blob(buf):
+    if buf.shape[0] < c.sizeof(StaticHeader):
+        raise ValueError('Not enough bytes for static header')
+    header = StaticHeader.from_buffer(buf)
+    apids = _read_apid_list(header, buf)
+    return CommonRdr(buf, header, list(apids))
+
+
 def rdr_datasets(filepath):
     fobj = H5File(filepath)
     rdr = dict(