User timeline sends error
When trying to access my profile, the timeline API endpoint errors out. This may be because of a favorite pointing to a post that has been deleted if I'm guessing correctly from the logs.
As always, logs:
[info] GET /api/qvitter/statuses/user_timeline.json
[debug] QUERY OK source="users" db=19.9ms decode=0.1ms queue=0.9ms
SELECT u0."id", u0."bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."following", u0."ap_id", u0."avatar", u0."local", u0."info", u0."follower_address", u0."inserted_at", u0."updated_at"
FROM "users" AS u0 WHERE (u0."nickname" = $1) ["eal"]
[debug] Processing with Pleroma.Web.TwitterAPI.Controller.user_timeline/2
Parameters: %{"_format" => "json", "user_id" => "1"}
Pipelines: [:api]
[debug] QUERY OK source="users" db=14.3ms decode=1.4ms queue=3.0ms
SELECT u0."id", u0."bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."following", u0."ap_id", u0."avatar", u0."local", u0."info", u0."follower_address", u0."inserted_at", u0."updated_at"
FROM "users" AS u0 WHERE (u0."id" = $1) [1]
[debug] QUERY OK source="activities" db=15.0ms decode=0.3ms queue=6.6ms
SELECT a0."id", a0."data", a0."local", a0."inserted_at", a0."updated_at" FROM "activities" AS a0 WHERE (a0."data"->>'actor' = $1) ORDER BY a0."id" DESC LIMIT 20 ["https://social.sakamoto.gq/users/eal"]
[debug] QUERY OK source="activities" db=0.9ms decode=0.2ms queue=1.2ms
SELECT a0."id", a0."data", a0."local", a0."inserted_at", a0."updated_at" FROM "activities" AS a0 WHERE ((a0."data")->'object'->>'id' = $1) ["https://mastodon.social/users/ckeen/statuses/20004159"]
[debug] QUERY OK source="activities" db=3.7ms queue=5.8ms
SELECT a0."id", a0."data", a0."local", a0."inserted_at", a0."updated_at" FROM "activities" AS a0 WHERE ((a0."data")->'object'->>'id' = $1) ["https://mastodon.social/users/JanMikusinski/statuses/19969899"]
[debug] QUERY OK source="activities" db=2.7ms queue=4.1ms
SELECT a0."id", a0."data", a0."local", a0."inserted_at", a0."updated_at" FROM "activities" AS a0 WHERE ((a0."data")->'object'->>'id' = $1) ["https://mastodon.social/users/6A62/statuses/20011650"]
[info] Sent 500 in 269ms
[error] #PID<0.10354.3> running Pleroma.Web.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /api/qvitter/statuses/user_timeline.json?user_id=1
** (exit) an exception was raised:
** (MatchError) no match of right hand side value: []
(pleroma) lib/pleroma/web/twitter_api/twitter_api.ex:232: Pleroma.Web.TwitterAPI.TwitterAPI.activity_to_status/2
(elixir) lib/enum.ex:1229: Enum."-map/2-lists^map/1-0-"/2
(elixir) lib/enum.ex:1229: Enum."-map/2-lists^map/1-0-"/2
(pleroma) lib/pleroma/web/twitter_api/twitter_api_controller.ex:72: Pleroma.Web.TwitterAPI.Controller.user_timeline/2
(pleroma) lib/pleroma/web/twitter_api/twitter_api_controller.ex:1: Pleroma.Web.TwitterAPI.Controller.action/2
(pleroma) lib/pleroma/web/twitter_api/twitter_api_controller.ex:1: Pleroma.Web.TwitterAPI.Controller.phoenix_controller_pipeline/2
(pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.instrument/4
(phoenix) lib/phoenix/router.ex:278: Phoenix.Router.__call__/1
(pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.plug_builder_call/2
(pleroma) lib/plug/debugger.ex:99: Pleroma.Web.Endpoint."call (overridable 3)"/2
(pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) /srv/pleroma-be/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
This is the part where it errors (MatchError at 232):
# For likes, fetch the liked activity, too.
229 defp activity_to_status(%Activity{data: %{"type" => "Like"}} = activity, opts) do
230 actor = get_in(activity.data, ["actor"])
231 user = User.get_cached_by_ap_id(actor)
232 [liked_activity] = Activity.all_by_object_ap_id(activity.data["object"])
233
234 ActivityRepresenter.to_map(activity, Map.merge(opts, %{user: user, liked_activity: liked_activity}))
235 end