slot = path->slots[0];
        if (slot > 0) {
                btrfs_item_key(eb, &disk_key, slot - 1);
-               BUG_ON(comp_keys(&disk_key, new_key) >= 0);
+               if (unlikely(comp_keys(&disk_key, new_key) >= 0)) {
+                       btrfs_crit(fs_info,
+               "slot %u key (%llu %u %llu) new key (%llu %u %llu)",
+                                  slot, btrfs_disk_key_objectid(&disk_key),
+                                  btrfs_disk_key_type(&disk_key),
+                                  btrfs_disk_key_offset(&disk_key),
+                                  new_key->objectid, new_key->type,
+                                  new_key->offset);
+                       btrfs_print_leaf(eb);
+                       BUG();
+               }
        }
        if (slot < btrfs_header_nritems(eb) - 1) {
                btrfs_item_key(eb, &disk_key, slot + 1);
-               BUG_ON(comp_keys(&disk_key, new_key) <= 0);
+               if (unlikely(comp_keys(&disk_key, new_key) <= 0)) {
+                       btrfs_crit(fs_info,
+               "slot %u key (%llu %u %llu) new key (%llu %u %llu)",
+                                  slot, btrfs_disk_key_objectid(&disk_key),
+                                  btrfs_disk_key_type(&disk_key),
+                                  btrfs_disk_key_offset(&disk_key),
+                                  new_key->objectid, new_key->type,
+                                  new_key->offset);
+                       btrfs_print_leaf(eb);
+                       BUG();
+               }
        }
 
        btrfs_cpu_key_to_disk(&disk_key, new_key);