Describe the bug
On iOS, files written to iCloud on one device never become visible on another device signed in to
the same iCloud account. Each device only ever sees the files it uploaded itself, so data stored
from one device cannot be listed or read from another.
Steps to reproduce
- Install the same build on two devices (iPhone and iPad) signed in to the same iCloud account
- On the iPhone, run
await CloudStorage.uploadFile('/from-iphone.zip', localUri, { mimeType: 'application/zip' })
- On the iPad, run
await CloudStorage.uploadFile('/from-ipad.zip', localUri, { mimeType: 'application/zip' })
- On either device, run
await CloudStorage.readdir('/') — only the file uploaded on that device
is returned, and this does not change after hours of waiting
- On the iPad, try to fetch the other file by its exact name:
await CloudStorage.triggerSync('/from-iphone.zip') — fails with File not downloadable at path …
Expected behavior
Both devices list both files, and a file uploaded on one device can be downloaded and read on the
other.
Screenshots
Not applicable.
Environment:
- Device: iPhone 13 mini, iPad (10th gen)
- OS: iOS 26.4.2
- Library version: 3.1.0
- react-native: 0.83.4, Expo SDK 55, New Architecture
- Scope:
CloudStorageScope.AppData
Additional context
The account and the container are the same on both devices: values written with CloudKVStorage
on one device are read on the other within seconds, and the container path reported in native
error messages is identical on both (…/Mobile Documents/<team>~com~<bundle>).
The directory listing on the receiving device does not contain .icloud placeholders for the
missing files either.
Describe the bug
On iOS, files written to iCloud on one device never become visible on another device signed in to
the same iCloud account. Each device only ever sees the files it uploaded itself, so data stored
from one device cannot be listed or read from another.
Steps to reproduce
await CloudStorage.uploadFile('/from-iphone.zip', localUri, { mimeType: 'application/zip' })await CloudStorage.uploadFile('/from-ipad.zip', localUri, { mimeType: 'application/zip' })await CloudStorage.readdir('/')— only the file uploaded on that deviceis returned, and this does not change after hours of waiting
await CloudStorage.triggerSync('/from-iphone.zip')— fails withFile not downloadable at path …Expected behavior
Both devices list both files, and a file uploaded on one device can be downloaded and read on the
other.
Screenshots
Not applicable.
Environment:
CloudStorageScope.AppDataAdditional context
The account and the container are the same on both devices: values written with
CloudKVStorageon one device are read on the other within seconds, and the container path reported in native
error messages is identical on both (
…/Mobile Documents/<team>~com~<bundle>).The directory listing on the receiving device does not contain
.icloudplaceholders for themissing files either.