@Override
  public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) {
    // Verify has UUID
    UUID uuid = profile.getUUID();
    LogHelper.debug("fillProfileProperties, UUID: %s", uuid);
    if (uuid == null) {
      return profile;
    }

    // Make profile request
    PlayerProfile pp;
    try {
      pp = new ProfileByUUIDRequest(uuid).request();
    } catch (Exception e) {
      LogHelper.debug("Couldn't fetch profile properties for '%s': %s", profile, e);
      return profile;
    }

    // Verify is found
    if (pp == null) {
      LogHelper.debug(
          "Couldn't fetch profile properties for '%s' as the profile does not exist", profile);
      return profile;
    }

    // Create new game profile from player profile
    LogHelper.debug("Successfully fetched profile properties for '%s'", profile);
    fillTextureProperties(profile, pp);
    return toGameProfile(pp);
  }