As an alternative to freedomofpress/securedrop#7689 (comment), the app could ask the server to shard the index as a form of backoff:
- Request the default index with
shards=1 (i.e., the whole thing). If the request succeeds, proceed with the rest of sync.
- If the request times out, request a halved index with
shards=shards*2. If the request succeeds, proceed with the rest of sync.
- If the request times out, GOTO (2).
Whatever value of shards succeeded for /index could also be used for /data.