You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update (re-scoped): This is a spec-conformance gap, not the cause of repos failing to index. The actual indexing/freezing problem is missing prevData in firehose #commit events — see #169. Details below.
Summary
com.atproto.sync.getLatestCommit is not implemented. Requests fall through the registered routes to the catch-all XRPC proxy (app.all("/xrpc/*", …) in packages/pds/src/index.ts) and return 501 MethodNotImplemented. It's a standard sync endpoint and should return 200.
Reproduction
curl 'https://<pds-host>/xrpc/com.atproto.sync.getLatestCommit?did=<did>'
# → HTTP 501 {"error":"MethodNotImplemented","message":"Method Not Implemented"}
Reproduces on any cirrus deployment (verified on pds.simnaut.io and mk.pds.mk.gg).
Not the indexing blocker
This issue originally suspected getLatestCommit of blocking relay indexing. Further investigation disproved that:
The reference relay (indigo) and rsky-relay build repo state from the firehose and do not call getLatestCommit during crawl (indigo only serves it; getRepo 3xx-redirects to the source PDS).
relay.feeds.blue — which surfaced this — runs standard indigo (not a custom implementation) and never calls getLatestCommit during crawl. Its repos freeze because of a different bug: cirrus omits the prevData field from #commit events, so strict indigo verification rejects them ("missing prevData field"). That's Firehose #commit omits prevData, breaking inductive verification on strict relays #169, the real federation fix.
So no relay's indexing depends on this endpoint; it's purely conformance.
Notes
All the data the endpoint needs is already available via AccountDurableObject.rpcGetRepoStatus() (returns { did, head, rev }), which getRepoStatus/listRepos already use. The fix is small — see #168.
Summary
com.atproto.sync.getLatestCommitis not implemented. Requests fall through the registered routes to the catch-all XRPC proxy (app.all("/xrpc/*", …)inpackages/pds/src/index.ts) and return501 MethodNotImplemented. It's a standard sync endpoint and should return200.Reproduction
Reproduces on any cirrus deployment (verified on
pds.simnaut.ioandmk.pds.mk.gg).Not the indexing blocker
This issue originally suspected
getLatestCommitof blocking relay indexing. Further investigation disproved that:getLatestCommitduring crawl (indigo only serves it;getRepo3xx-redirects to the source PDS).relay.feeds.blue— which surfaced this — runs standard indigo (not a custom implementation) and never callsgetLatestCommitduring crawl. Its repos freeze because of a different bug: cirrus omits theprevDatafield from#commitevents, so strict indigo verification rejects them ("missing prevData field"). That's Firehose #commit omits prevData, breaking inductive verification on strict relays #169, the real federation fix.So no relay's indexing depends on this endpoint; it's purely conformance.
Notes
All the data the endpoint needs is already available via
AccountDurableObject.rpcGetRepoStatus()(returns{ did, head, rev }), whichgetRepoStatus/listReposalready use. The fix is small — see #168.