code: def _raise_any_errors_given_in_baton_out(baton_out_as_json: List[Dict]):
          
          if not isinstance(baton_out_as_json, list):
              baton_out_as_json = [baton_out_as_json]
  
          for baton_item_as_json in baton_out_as_json:
              if BATON_ERROR_PROPERTY in baton_item_as_json:
                  error = baton_item_as_json[BATON_ERROR_PROPERTY]
                  error_message = error[BATON_ERROR_MESSAGE_KEY]
                  error_code = error[BATON_ERROR_CODE_KEY]
  
                  # Working around baton issue: https://github.com/wtsi-npg/baton/issues/155
                  if error_code == IRODS_ERROR_USER_FILE_DOES_NOT_EXIST or \
                          (error_code == IRODS_ERROR_CAT_INVALID_ARGUMENT and "Failed to modify permissions" in error_message):
                      raise FileNotFoundError(error_message)
                  elif error_code == IRODS_ERROR_CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME \
                          or error_code == IRODS_ERROR_CAT_SUCCESS_BUT_WITH_NO_INFO:
                      raise KeyError(error_message)
                  else:
                      raise RuntimeError(error_message)
docs: Raises any errors that baton has expressed in its output.
          :param baton_out_as_json: the output baton gave as parsed serialization