Better error handling for recipe parsing