 			return
 		}
 
-		let latestEtag = usingUserEventsFromServer.latestUserEventEtag
-		let latestDate = usingUserEventsFromServer.latestUserEventDateProcessed ?? never()
-
 		var extraHeaders: Dictionary<String, String>?
-		if let e = latestEtag {
+		if let e = usingUserEventsFromServer.latestUserEventEtag {
 			extraHeaders = ["If-None-Match": e]
+		}
+
+		var latestDate = usingUserEventsFromServer.latestUserEventDateProcessed
+		if latestDate == nil {
+			latestDate = never()
+			usingUserEventsFromServer.latestUserEventDateProcessed = latestDate
 		}
 
 		let userName = usingUserEventsFromServer.userName ?? "NoApiUserName"

			return
		}

		let latestEtag = usingReceivedEventsFromServer.latestReceivedEventEtag
		let latestDate = usingReceivedEventsFromServer.latestReceivedEventDateProcessed ?? never()

		var extraHeaders: Dictionary<String, String>?
		if let e = latestEtag {
			extraHeaders = ["If-None-Match": e]
		}

		usingReceivedEventsFromServer.latestReceivedEventDateProcessed = latestDate

		let userName = usingReceivedEventsFromServer.userName ?? "NoApiUserName"
		getPagedDataInPath("/users/\(userName)/received_events",

			perPageCallback: { [weak self] data, lastPage in
				for d in data ?? [] {
					let eventDate = syncDateFormatter.dateFromString(d.ofk("created_at") as! String)!
					if latestDate!.compare(eventDate) == NSComparisonResult.OrderedAscending { // this is where we came in
						if let repoId = d["repo"]?["id"] as? NSNumber {
							DLog("New event at %@ from Repo ID %@", eventDate, repoId)
							repoIdsToMarkDirty.insert(repoId)
						}
						if latestDate!.compare(eventDate) == NSComparisonResult.OrderedAscending {
							usingReceivedEventsFromServer.latestReceivedEventDateProcessed = eventDate
							if latestDate!.isEqualToDate(never()) {
								DLog("First sync, all repos are dirty so we don't need to read further, we have the latest received event date: %@", latestDate)
								return true
							}
