I've found that some applications (such as tokimeki.blue) don't set Atproto-Proxy request header by default when calling the Bluesky API, which causes problems. For these API endpoints, they should pass through to did:web:api.bsky.app#bsky_appview by default when the Atproto-Proxy request header is not set.
Default AppView for app.bsky APIs #14
According to the ATProto specification, this is correct. However, in real-world environments, many applications still don't fully adhere to it, and this specification was established later; it wasn't designed this way in earlier versions. For backward compatibility, I believe implementing a default AppView settings makes sense.
like i said if this becomes a really wide ranging issue we will absolutely look into it! but this part of the spec is at least 2 years old now. and has been the official recommendation since at least march last year. deprecation in the reference is also planned eventually.
at this stage the only clients that do this are old third party bluesky clients. if we can avoid ever having a default like this without disrupting too many users we will do so. but ofc if it ends up being too big a disruption for the people who wish to run tranquil we will absolutely add support! i just want to wait things out a bit and focus on more pressing issues. this is a thing that can be added extremely quickly if need be.
this is intentional design as those requests failing is the expected result as per spec. any client that doesnt set that header has a bug and the right course of action is to get those clients to fix the issue.
tranquil intentionally stays as close to spec as we practically can. any special casing of particular clients and applications that can be avoided we want to avoid. but we also want to stay functional in practice and not just theory so if this ends up being a wider issue we might add a configuration option so pds admins can set a default bluesky appview if they so desire. probably added in the same batch where we factor out all the existing bluesky special casing into its own optional crate.