get_setup_status checks most of this page against what Pool’s service has seen from your builds, and explain_failure_code explains any error.
Results are empty
- Is there a grant? Indexing starts only once a grant exists. Call
requestAccessfirst, then query with that grant. - Is indexing done? An empty answer means “nothing there” only when
result.coverage.isComplete. Otherwise show progress fromcoverage.indexedAssetsandknownAssets. - Is the window right? The default index window covers three months back. Older photos need
.everythingor a longer span in IndexOptions. - Does the grant cover it? A grant for
.productsnever returns places, whatever the question says. Videos also need.videosinPoolConfiguration.sources. - Limited library access? When the person picked only some photos, PoolKit sees only those.
result.coverage.permissionsayslimited. - In the Simulator? Drag photos and screenshots into the Simulator, or use the test fixtures.
The key is refused
A refused key stops only cloud calls. The on-device engine keeps working, and PoolKit tries the key again the next time the app opens.
Indexing is slow or stops
- The first index takes time. A large library takes minutes in the foreground. Register background indexing so iOS can carry on while the app is closed.
- Runs end with
endedByIOS. iOS gives background tasks a few minutes; the next run carries on. This is normal on large libraries. - Models still downloading. The engine’s models, about 375 MB, download on Wi-Fi. Until they arrive, search works from text and labels.
pool.sources.status()shows the download. - iCloud photos. Photos only in iCloud are skipped unless
allowsNetworkDownloadsis on. - Low Power Mode or a hot phone. PoolKit slows down rather than drain the battery.
sendsRunReports to see how runs end, per device, in the dashboard.
Places or people show nothing
- Places appear once PoolKit has seen at least 30 located photos on 10 days, so it knows where home is. Nothing near home is ever shown.
- Place names need a network that is not metered, unless
allowsCellularis on. Offline, only the city is named. - People need both the
.peoplecategory in a grant andIndexOptions.people = true. Only photos with a clear face count.
Cloud assist answers 429
quota_exceeded: the app used its month’s cloud assist units or connected installs. Check usage in the dashboard or withget_usage.cloud_assist_disabled: cloud assist is off for this app.rate_limited: one install sent requests too fast. PoolKit waits by itself.

