public static ErrorDetail createErrorDetail(String idempotentId, String title, Exception e, boolean canSkip) {
    return ErrorDetail.builder()
        .setId(idempotentId)
        .setTitle(title)
        .setException(Throwables.getStackTraceAsString(e))
        .setCanSkip(canSkip).build();
  }
@param idempotentId Must be an idempotent identifier for the failed item.
@param title Title of the failed item
@param e Exception thrown that caused the failure.
@param canSkip Based on if we're failing the transfer based on this exception or not.
@return an ErrorDetail object with the passed in values.
extensions/data-transfer/portability-data-transfer-google/src/main/java/org/datatransferproject/datatransfer/google/common/GoogleErrorLogger.java