Alright, I can work with that. The function that removes the items from the inventory after a successful craft works from a list of the ingredients, and the list is only populated with the ingredients that were actually consumed, so if the list was empty, instead of just moving on, it tries to read an object that doesn't exist and fails instead.
I should be able to get that sorted out fairly soon.