NetNewsWire
NetNewsWire copied to clipboard
iCloud syncs only one way (to iPhone, never from)
The Issue
For ~18 months I've been ignoring/working around a bug in iCloud syncing with NNW: No read/unread status changes are synced from my iPhone to my other devices. Read/unread changes sync between my Mac and iPad, and sync from my Mac/iPad to my phone, but not the other way around.
For example, if I mark something as read/unread on my iPhone, this change is never reflected on my Mac or iPad, but if I do the reverse, the change is reflected on my iPhone almost immediately. This works even for bulk changes (I've tested marking a hundred or so articles as read at a time).
Adding and removing feeds on my iPhone DOES sync to my other devices reliably (and vice versa).
What I've Tried
I have tried following the advice here, but my syncs appear to complete just fine on all devices (the progress bar does not hang), and I don't have many feeds, or many unread articles (I almost always have fewer than a hundred unread articles).
I've also tried reinstalling NNW on all devices, but everything ends up back in the same state (e.g. same read/unread status discrepancies between devices, and same sync issues).
Logging out/in of iCloud on my iPhone fixed the issue for a few weeks the first time I tried it, but did nothing the following two times I tried it (and now I've used up my quota of patience with logging in and out of iCloud for the year).
What Next?
I would really appreciate any help debugging this. I really don't want to switch to a different sync service for a variety of reasons, including that NNW iCloud sync seems to work "reliably" between two and a half of my devices.
I'm open to the "nuclear" option here, but 1) I'm not sure that it would help (since that page focuses on a slightly different issue to mine) and 2) I would rather not lose my starred articles and read/unread status.
I have a similar issue… but the other way; 'from iPhone to Mac' status updates syncs as expected, but 'from Mac to iPhone' status updates don't get reflected.
Unfortunately it seems that when I disable/re-enable the iCloud feed (from scratch), the 'from Mac' status updates aren't applied at all, hence I'm suspecting something is disabling iCloud updates from the Mac.
Looking at Console.app, it seems the error comes from a CloudKit failure while sending an article status modify:
https://github.com/Ranchero-Software/NetNewsWire/blob/mac-6.1.4/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift#L150
The above logs as: Send article status modify articles error: Partial Failure: some items failed, but the operation succeeded overall..
and a relevant CloudKit log (from the same job id) mentions:
Finished operation <CKModifyRecordsOperation: 0x16968bde0; databaseScope=Private, operationID=EB23EFCBEE9A1984, resolvedConfig={ timeoutForRequest=60, discretionary=Non-Disc }, qos=UserInitiated, stateFlags=executing, metrics=<CKOperationMetrics: 0x6000036ae520; cloudKitMetrics=<CKMetric: 0x600000164280; startDate=2023-08-20 05:49:38 +0000, duration=0.542, queueing=0.005, executing=1.039, bytesUploaded=39049, bytesDownloaded=14993, connections=1, connectionsCreated=0, totalBytesByChunkProfile={ }, chunkCountByChunkProfile={ }, fileCountByChunkProfile={ }>>, databaseScope=Private> with error: <CKError 0x600003bac270: "Partial Failure" (1011); "Failed to modify some records"; partial errors: {
a|716eb12d7ab664685a3c167d7bf9e194:(Articles:__defaultOwner__) = <CKError 0x600003b31140: "Invalid Arguments" (12/2006); server message = "Cannot create or modify field 'imageURL' in record 'Article' in production schema"; op = EB23EFCBEE9A1984; uuid = 4802C65A-DE53-4F29-AEA7-1A64685E89B4>
... 181 "Batch Req
From the error message Cannot create or modify field 'imageURL' in record 'Article' in production schema
, I think there's some mismatch between the CloudKit schema and the local DB, but I don't know CloudKit that much... hope this is enough information for debugging.
It seems I had the same issue: changes on my iPhone were visible on my iPad, but changes from my iPad did not appear on my iPhone. An extra problem was that changing a folder name on my iPad was not synced so new feeds that I added on my iPhone never appeared on my iPad either..
Reinstalling the app on my iPhone (the one that did not receive changes) fixed it just now.. Edit: what might be interesting is that I use the app mostly on my iPad and only sometimes (once every some weeks) on my iPhone, mostly to add a feed that I just discovered.
Nope, still strange syncing issues, e.g. when renaming a folder on iPad, it is being added as a new folder on iPhone next to the old one, with some feeds in the new folder and some in the old one. I give up and will use feedbin from now on.
I have encountered this three times over the last ~6 months or so. Updates (mainly read status) from either my personal or work Mac are synced to iOS, however my activity from iOS is not synced back to those Macs. Both Macs see each other's changes.
The first time, I reinstalled NNW everywhere. NNW status was restored to my iOS status. Second time I was experiencing other issues on my phone so I restored it from backup. This caused my NNW status to be restored to my macOS status. Encountered this issue again this week. Still not resolved; not keen on trying to restore any devices again.
@jjatie Read iCloud Syncing Limitations & Solutions and see if it can help you resolve your problem.
Unfortunately I had to do the nuclear option. While that is certainly far less of a hassle to get back to a syncing situation, resetting devices also preserves the read status.
I was surprised to see just how much data NNW is using in iCloud. I have 45 subscriptions and before resetting I had between 450-1000 unread depending on which device was actually the SOT. iCloud storage read 70.0 MB. I was expecting "Larger number of unread articles" to mean at least another order of magnitude.
I guess I have a feature request, to opt-out of syncing the articles themselves. I know I would be more than willing to lose older, unread articles if it meant more stable iCloud syncing. Perhaps a balance is to sync unread URLs rather than the contents, or the ability to only keep articles for X amount of time (per feed)?
EDIT: Aww shucks. Just realized I lost my favourites. Might be good to add a disclaimer to support doc too.
I ended up switching to another RSS client.* So far the iCloud syncing works great, and there are a few options for customising how sync works, which gives me some confidence I’d be able to at least attempt to troubleshoot an issue.
*No criticism intended to NNW or its developers. The root cause may well be at Apple’s end, and even if it’s not, it’s not like I paid for NNW - if anything, I owe the developers, not the other way around (and even if I had paid for it, NNW includes a big disclaimer about iCloud sync limitations in the app). Plus it’s early days for my new client (it was years before I had trouble with NNW’s iCloud sync).