SearchController search error on certain users
Environment
- Installation type (OTP or From Source): OTP
- Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): v2.4.0, v2.4.4, v2.4.5-2
- Elixir version (
elixir -v
for from source installations, N/A for OTP): N/A - Operating system: Alpine Linux
- PostgreSQL version (
psql -V
): 15.1
Bug description
Certain users cannot be found by searching the full name in the search bar like @username@instance.tld
(Mastodon v3.5.2). Posting with @username@instance.tld
mentioned will result in a 500 error. The replies from another user mentioning @username@instance.tld
WILL present in my timeline, but clicking the username will bring me to the profile page in instance.tld
.
To filter out the cause, I've tried the followings:
- From same local instance, try searching another user at the same remote instance: working
- From blob.cat (v2.2), trying searching
@username@instance.tld
: working - From bae.st (v2.4), trying searching
@username@instance.tld
: working - From a brand new instance I setup in another VPS, try searching
@username@instance.tld
: not working - Upgrade my instance from v2.4.4 to v2.4.5-2, try searching: not working
- Upgrade PostgreSQL from 14 to 15.5: not working
- Downgrade my instace from v2.4.5-2 to v2.4.0: not working
Here are the logs generated by my server when trying to interact with the user:
Searching:
22:41:22.355 [error] Elixir.Pleroma.Web.MastodonAPI.SearchController search error: %FunctionClauseError{args: nil, arity: 1, clauses: nil, function: :"-pin_data_from_featured_collection/1-fun-0-", kind: nil, module: Pleroma.Web.ActivityPub.ActivityPub}
Mentioning:
22:52:20.531 request_id=xxxxxxxxxxxxxxxxxxxxxx[error] Internal server error: %Cachex.ExecutionError{message: "no function clause matching in anonymous fn/1 in Pleroma.Web.ActivityPub.ActivityPub.pin_data_from_featured_collection/1"}
22:52:20.531 request_id=xxxxxxxxxxxxxxxxxxxxxx[info] Sent 500 in 1104ms
22:52:20.534 [error] #PID<0.7890.0> running Pleroma.Web.Endpoint (connection #PID<0.7889.0>, stream id 1) terminated
Server: my.server.tld:80 (http)
Request: POST /api/v1/statuses
** (exit) an exception was raised:
** (Cachex.ExecutionError) no function clause matching in anonymous fn/1 in Pleroma.Web.ActivityPub.ActivityPub.pin_data_from_featured_collection/1
(cachex 3.3.0) lib/cachex.ex:1443: Cachex.unwrap_unsafe/1
(pleroma 2.4.5-2-gd8e32646) lib/pleroma/formatter.ex:24: Pleroma.Formatter.escape_mention_handler/4
(linkify 0.5.1) lib/linkify/parser.ex:389: Linkify.Parser.link_mention/4
(linkify 0.5.1) lib/linkify/parser.ex:444: Linkify.Parser.check_and_link_reducer/4
(elixir 1.10.4) lib/enum.ex:3686: Enumerable.List.reduce/3
(elixir 1.10.4) lib/enum.ex:2161: Enum.reduce_while/3
(linkify 0.5.1) lib/linkify/parser.ex:155: Linkify.Parser.do_parse/3
(linkify 0.5.1) lib/linkify/parser.ex:72: Linkify.Parser.parse/2
Edited by Renn Akaza