With the syspref AllowHoldItemTypeSelection set to Allow, it is possible to add a hold for an itemtype that doesn’t actually exist at a specific branch. Say that branch A has two itemtypes: books and map, while branch B has three: books, map and audio book. It is possible to add a hold for branch A with itemtype audio book although there is no item with such an itemtype at this branch. This will cause an internal server error if you try to delete this faulty hold.
1) Enable AllowHoldItemTypeSelection
2) Add, or find, a bibliographic record with at least two branches and at least two items with two different itemtypes. Branch B should not have all itemtypes.
3) Add a hold for branch B, and choose an itemtype not available at this branch (there are no such items)
4) Try deleting the hold, note the internal server error.
Additionally, this permits patrons to place holds on item types that are set to not allow holds, and when the item is checked it, the hold will trigger.