private String summarizeNewPlaylistItemResultErrors(
      NewPlaylistItemResult playlistItemResult)
      throws Exception {
    try {
      if (playlistItemResult.getStatus() != null) {
        Status status = playlistItemResult.getStatus();
        if (status.getCode() != Code.OK_VALUE) {
          throw new IOException(
              String.format(
                  "PlaylistItem could not be created. Code: %d Message: %s",
                  status.getCode(), status.getMessage()));
        }
      }
    } catch (IOException e) {
      if (StringUtils.contains(e.getMessage(), "permanent failure")) {
        // Permanent Failure: terminate the transfer job and notify the end user
        // TODO(critical WIP-feature step): Add permanent failures.
        throw new CopyException("Permanent Failure:", e);
      } else if (StringUtils.contains(e.getMessage(), "Fail to find track matching")
          || StringUtils.contains(e.getMessage(), "Missing ISRC in playlist item")
          || StringUtils.contains(e.getMessage(), "Max videos exceeded")) {
        // Skippable Failure: we skip this batch and log some data to understand it better
        // TODO(critical WIP-feature step): Add skippable failures.
        monitor.info(() -> "Skippable Failure:", e);
      } else {
        // Retryable Failure: retry the playlist item
        throw e;
      }
    }
    return ""; // No errors, so nothing to summarize.
  }
Summarizes result as a human-readable string. Empty string indicates no issues.
extensions/data-transfer/portability-data-transfer-google/src/main/java/org/datatransferproject/datatransfer/google/music/GoogleMusicImporter.java