Page MenuHomePhabricator

Saving a particular article fails
Open, MediumPublicBUG REPORT

Description

How many times were you able to reproduce it?

Every time

Steps to reproduce

  1. Go to Symphony No. 4 (Mahler) on EN Wikipedia
  2. In first article, long press "Maiernigg" link and tap "Save for later" in context menu
  3. After saving banner pops up, long press "Maiernigg" again.

Expected results

Contextual menu should say "Remove from saved". Also article show up properly in "Saved" tab.

Actual results

Contextual menu still says "Save for later". Also saved tab has a persistent yellow "Article queued to be downloaded" banner. Tapping article goes to the article but article saved state bookmark icon at the bottom toolbar is unselected. Then going back to saved and tapping the article again is unresponsive.

Note: Probably the biggest clue to what's going on is this Xcode console error that pops up after step 2 above:

CoreData: error: Mutating a managed object 0x2835a1460 <x-coredata:///WMFArticle/t9742859D-EC1F-4FDE-A2A7-CB985BE2ABF0256> (0x28173dd10) after it has been removed from its context.

Environments observed

App version: App Store 6.8.2 (1868)
OS versions: iOS 15.2
Device model: iPhone 12 Pro Max
Device language: EN

Affected articles?

  • Symphony No. 4 (Mahler) on EN Wikipedia, "Maiernigg" link

Related Objects

Event Timeline

LGoto triaged this task as Medium priority.Jan 31 2022, 7:42 PM
LGoto added a project: iOS-app-feature-Saved.
LGoto moved this task from Needs Triage to Bug Backlog on the Wikipedia-iOS-App-Backlog board.

I am able to reproduce this in v7.1, iOS 16.2.

This might be because there are multiple valid URLs for the Maiernigg article. The URL in the link is https://en.wikipedia.org/wiki/Maiernigg, but this redirects to https://en.wikipedia.org/wiki/Maria_Wörth. When the metadata of this article is fetched (when you long-press an article) it is cached with the key https://en.wikipedia.org/wiki/Maria_Wörth, but when you try to save the article it's looking for the key https://en.wikipedia.org/wiki/Maiernigg (GitHub link; may want to put a breakpoint here for the call stack).