Our Personal Data Server from scratch! tranquil.farm
oauth atproto pds rust postgresql objectstorage fun

bsky.app list member add flow broken on tranquil: user is found but cannot be added #39

open opened by alice.perlsky.mosphere.at

With apologies for the LLMese, the body of text was written by GPT 5.4 but it has been double-checked by me. I ran https://tangled.org/alice.mosphere.at/atproto-smoke against the PDS and it turned this up. But hey, now there is an adapter! See https://tangled.org/alice.mosphere.at/atproto-smoke/blob/main/src/adapters/tranquil-pds.mjs and https://tangled.org/alice.mosphere.at/atproto-smoke/blob/main/examples/tranquil-pds-dual.json


When using tranquil as the PDS behind bsky.app, the "Add people to list" flow is broken.

The modal successfully finds the target user, but no add action is rendered. Clicking the search result does not add the user, indeed there is no Add button whatsoever.

Environment#

  • tranquil 0.3.1
  • PDS: https://tranquil.mosphere.at
  • Client: https://bsky.app

Steps to Reproduce#

  1. Open https://bsky.app
  2. Sign in using a tranquil-hosted account
  3. Create a new list
  4. Open the list
  5. Go to the People tab
  6. Click Add people
  7. Search for another user

Expected#

A visible action should appear to add the matched user to the list.

Actual#

The matched user is shown in the modal, but there is no add button/action, and clicking the result does not add them.

Notes#

This looks like a compatibility issue somewhere in the list-member flow between tranquil and bsky.app.

Important detail: repo-level list item creation appears to work. I was able to create an app.bsky.graph.listitem record directly via authenticated com.atproto.repo.createRecord, so this does not look like a fundamental inability to store list memberships.

I also saw a related browser-side response during the same run:

  • GET /xrpc/com.atproto.repo.listRecords? collection=app.bsky.graph.listitem&repo=<did>&limit=100
  • 404

Not sure if that is the root cause or just another symptom.

Impact#

Users cannot add members to lists through the normal bsky.app UI when hosted on tranquil.

This smoke test thing is already doing exactly what I have been meaning to do, which is exhaustively go click around bsky and try do niche things that a Lewis never usually does and seeing what breaks like adding to lists. there are some other things that have failed in bskybut i already forgot what. thank you!

seems this is a case of the good-ol clients not using the atproto-proxy after spec ...

the official client adds atproto-proxy: did:web:api.bsky.app to that listRecords call and tranquil dutifully proxies it like it was asked to (unlike the ref impl). and then the bluesky appview responds with a 404 since it does not implement that endpoint ... joyous.

im starting to think we might be forced to give up on staying spec compliant for proxying even though we have clung to it for a while now

my jacquard talk draft has a bit about the decision of when to be strict on spec and when not to for a reason.

re tranquil, might be good to keep non-compliant pragmatic stuff gated by cargo feature? that way one can test spec compliance while still having a pds that just works. and if ppl do start conforming with the spec, then the toggle is no longer needed.

I don't wanna be a bad influence but I think sticking to it is exactly how things get fixed. Any protocol non-compliance things should be redirected at the relevant repository and, with enough pressure, should get fixed quicker than just giving in and letting them keep ignoring their own rules.

thats the method we have been going for so far yea. sticking to spec and causing a ruckus is the best way to get this stuff resolved i think. at least for proxying where conforming to spec has a straight forward path. its just painful for users which isnt ... great

though yea for stuff like the special handling for getFeed where there fundamentally isnt a way to do that while sticking to spec the plan has been for a while to gate it behind a feature flag and move most of the implementation bits into its own crate

https://bsky.app/profile/alex.bsky.team/post/3mgvnrgi7sc2a

looks like this exact approach is paying off here too so

sign up or login to add to the discussion
Labels

None yet.

assignee

None yet.

Participants 5
AT URI
at://did:plc:pkktelaqretqiz2bddzzlv3t/sh.tangled.repo.issue/3mgvc7bqpev22