-
I am having issues with PLC DIDs not resolving correctly, specifically for getting a feed, when that DID is not the current client's logged in DID. To reproduce, log into a client: Next, grab some posts from somewhere. I have tried posts off the firehose as well as in the client's likes: I do some data reorganizing, and am left with a list of DIDs of authors of liked posts. Then, for each DID I try to grab the profile's feed: This causes a BadRequestError to be thrown: Strangely, this error is not consistent. Some PLC DIDs work fine. Others do not. They are all BlueSky based profiles as far as I know, both the ones that work and the ones that do not. I should note that I am not breaking any rate limits or anything of the sort here. For now, I am getting around this by pulling directly from BlueSky by reading from the https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed endpoint, which returns the correct response for the DIDs and works fine. I don't claim to be knowledgeable about PLC DIDs but based on my searching it seems like they have gotten some protocol updates over time that have caused issues, and that might be what is going on here. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
Hi quick answer here. Try to switch to PDS of DID you are trying to fetch. To do so resolve DID, find their PDS URL, specify base url in client's constructor. Repeat your list() request |
Beta Was this translation helpful? Give feedback.
-
Switching the PDS indeed worked, thanks! Code for others' reference: |
Beta Was this translation helpful? Give feedback.
-
I'll add something interesting - not important enough to reopen the issue or anything - but if you login with a client and then call |
Beta Was this translation helpful? Give feedback.
Hi quick answer here. Try to switch to PDS of DID you are trying to fetch. To do so resolve DID, find their PDS URL, specify base url in client's constructor. Repeat your list() request