using tap with relay.fire.hose.cam edited
43 lines 1.7 kB view raw
1## Issue: `relay.fire.hose.cam` missing `com.atproto.sync.listReposByCollection` endpoint 2 3### Context 4 5I'm using [TAP](https://github.com/bluesky-social/indigo/tree/main/cmd/tap) (from bluesky-social/indigo) to index Leaflet documents for a search service. TAP is a "synchronization and backfill tool for atproto apps." 6 7### What TAP needs 8 9TAP's [crawler.go](https://github.com/bluesky-social/indigo/blob/main/cmd/tap/crawler.go) uses `com.atproto.sync.listReposByCollection` to discover repos that have records in a specific collection: 10 11```go 12repoList, err := comatproto.SyncListReposByCollection(ctx, client, collection, cursor, 1000) 13``` 14 15This is used when `TAP_SIGNAL_COLLECTION` is set (e.g., `pub.leaflet.document`) to enumerate only repos relevant to that collection rather than the entire network. 16 17### The problem 18 19`relay.fire.hose.cam` returns 404 for this endpoint: 20 21```bash 22$ curl "https://relay.fire.hose.cam/xrpc/com.atproto.sync.listReposByCollection?collection=pub.leaflet.document&limit=1" 23{"error":"Not Found"} 24``` 25 26The official Bluesky relay supports it: 27 28```bash 29$ curl "https://relay1.us-east.bsky.network/xrpc/com.atproto.sync.listReposByCollection?collection=pub.leaflet.document&limit=1" 30{"cursor":"...","repos":[{"did":"did:plc:ukp7pzzht32uigg6bg4vxr5t"}]} 31``` 32 33### Likely cause 34 35`listReposByCollection` was [added to indigo on February 18, 2025](https://github.com/bluesky-social/indigo/commit/10fe963). `relay.fire.hose.cam` may be running an older version. 36 37### Workaround 38 39Switched to the official Bluesky relay: https://github.com/zzstoatzz/leaflet-search/commit/8289eb7 40 41```toml 42TAP_RELAY_URL = 'https://relay1.us-east.bsky.network' 43```