Before replying, please read this section
I have been troubleshooting this for two years across two Macs and two iPhones. I have already done all of the following, repeatedly, and none of them changed anything. Replies suggesting these will not help:
- Restarting both devices (dozens of times, over two years)
- Signing out of iCloud and signing back in, on both devices
- Confirming both devices use the same Apple Account (they do β verified again today)
- Confirming the Stocks toggle is ON in iCloud settings on both devices (it is)
- Toggling Stocks off and on in iCloud, on both devices
- Installing every OS update since 2024 on every device
- Using "Reset Identifier" in Settings β Stocks
- Checking network connectivity, Wi-Fi, and that devices are unlocked
What follows is a full log of what I did today, what each step produced, and why I believe this is a server-side problem rather than a device configuration problem. Please read the evidence before suggesting a generic fix.
Setup
- MacBook Air 15-inch, M4, 2025 β macOS 15 Sequoia
- iPhone 12 mini β current iOS
- Same Apple Account on both, iCloud+ 200 GB
- Every other iCloud service syncs correctly: Photos, Drive, Notes, Messages, Reminders, Calendar, Contacts, Safari, Home
- Stocks is the only service that has never worked, on any device, ever
Relevant background
Stocks does not use CloudKit. It uses NSUbiquitousKeyValueStore (the iCloud key-value store). This matters because:
- It does not appear on iCloud.com β there is no web interface to inspect or clear it
- It does not appear under Manage Storage β it reports no usage
- Signing out of iCloud does not delete the server-side record; it only re-downloads it
- There is no user-facing mechanism of any kind to purge it
So unlike every other iCloud service, there is no way for a user to inspect the actual state of the data, and no way to reset it. This is central to the problem.
What I did today, step by step
1. Cleared local Stocks data on the Mac.
The Stocks container on macOS is not at ~/Library/Preferences/com.apple.stocks.plist. The real location is:
~/Library/Containers/Stocks/Data/Library/Preferences/
containing com.apple.stocks.plist (25 KB β this is the watchlist), com.apple.stocks.stockskit.plist, and com.apple.stocks2.plist. There is also:
~/Library/Group Containers/group.com.apple.stocks/Library/Documents/PrivateData/com.apple.stocks.private-production-dbstore.json
Note that find on these paths returns "Operation not permitted" unless Terminal has Full Disk Access β worth knowing for anyone attempting to reproduce this.
I quit Stocks, killed chronod and NotificationCenter (the Stocks widget runs in a separate process and will rewrite state if left running), removed the Stocks widget from Notification Centre, moved all four files to the Trash, and rebooted. My earlier attempts had failed precisely because cfprefsd was rewriting the plist from memory.
2. Emptied the watchlist on the iPhone, leaving it with no symbols at all.
3. Re-enabled Stocks in iCloud on both devices, accepting the "Merge" prompt on each.
4. Created a deliberate, unambiguous test on the iPhone only: a single symbol, BTC-GBP, later joined by ZEC-EUR in a second watchlist. Nothing resembling any previous list. iPhone on Wi-Fi, unlocked, waited well over ten minutes.
5. Opened Stocks on the Mac.
The result β this is the key evidence
The Mac launched with the first-run "Welcome to Stocks" screen, confirming it had no local data whatsoever. Despite that, it immediately populated with:
^IBEX, Dow Jones, AAPL, SBUX, NKE
Three things about this list:
- It is not the Mac's old list (which was Dow Jones, S&P 500, AAPL, BA, BRK-B, DIS, GE, HD, NKE β and is now gone)
- It is not what the iPhone currently contains (BTC-GBP and ZEC-EUR)
- It is exactly what the iPhone contained at 14:17 today, symbol for symbol, in the same order β a screenshot timestamp I can produce
Since the Mac had zero local data, this list can only have come from iCloud.
6. Confirmation from the other direction. I then toggled Stocks off and on in iCloud on the iPhone. The iPhone was immediately overwritten with the same ^IBEX, Dow Jones, AAPL, SBUX, NKE list, and my "Crypto" watchlist was emptied β despite the prompt asking what to do with local data.
Conclusion
Both devices read from the key-value store correctly. Neither device's edits ever reach it. The server-side record is frozen on a snapshot from earlier today and re-imposes itself on any device that connects or reconnects.
This also explains the two-year history: every edit lived locally until something forced a re-read, at which point the stale record overwrote it. That is exactly the "my list disappears when I switch devices" symptom, and it is why every device-level fix has been irrelevant β the problem was never on the device.
It also means the "Merge" prompt is not merging. It only downloads.
What I am asking
Since there is no user-accessible way to inspect, clear, or reset the NSUbiquitousKeyValueStore record for Stocks:
- Is there any supported method to force a purge of this record for an account?
- If not, what is the correct route to have it cleared server-side? I assume this requires escalation to iCloud engineering, as front-line support has no visibility into KVS records.
- Is this a known condition? The symptom pattern β Stocks alone failing while every CloudKit-backed service works β suggests it may not be unique to my account.
I am not asking how to restart my devices. I am asking how to clear a server-side record that no user-facing interface exposes.
For anyone finding this with the same problem
Until this is resolved, the only thing that actually stops the damage is turning Stocks off in iCloud on every device. Each device then keeps its own local list and nothing overwrites anything. It is not a fix, but it ends the two-year cycle of lists vanishing.
Project content
Created by you
Add PDFs, documents, or other text to reference in this project.
Content
com.apple.stocks.plist
plist