         let secondFetchCallback = expectation(description: "Waiting for initial fetch callback")
         
         talkPageController.fetchTalkPage { (result) in
-            secondFetchCallback.fulfill()
             
             switch result {
             case .success(let dbTalkPageID):
-                let dbTalkPage = try? self.tempDataStore.viewContext.existingObject(with: dbTalkPageID) as? TalkPage
+                guard !dbTalkPageID.isInitialLocalResult else {
+                    return
+                }
+                let dbTalkPage = try? self.tempDataStore.viewContext.existingObject(with: dbTalkPageID.objectID) as? TalkPage
                 XCTAssertEqual(firstDBTalkPage, dbTalkPage)
                 XCTAssertEqual(dbTalkPage?.revisionId?.intValue, MockArticleRevisionFetcher.revisionId)
                 XCTAssertFalse(self.talkPageFetcher.fetchCalled, "Expected fetcher to not be called for second fetch")

            case .failure:
                XCTFail("TalkPageController fetchTalkPage failure")
            }
        }
        wait(for: [secondFetchCallback], timeout: 5)
    }

            
            switch result {
            case .success(let dbTalkPageID):
                let dbTalkPage = try? self.tempDataStore.viewContext.existingObject(with: dbTalkPageID.objectID) as? TalkPage
                firstDBTalkPage = dbTalkPage
                XCTAssertEqual(dbTalkPage?.revisionId?.intValue, MockArticleRevisionFetcher.revisionId)
                XCTAssertTrue(self.talkPageFetcher.fetchCalled, "Expected fetcher to be called for initial fetch")
