AP S2S: Pleroma doesn't store my server's actors in DB and fails without proper logs
Environment
- Installation type: OTP (AUR package pleroma)
- Pleroma version: 2.1.1
- Elixir version: N/A
- Operating system: Linux (Arch Linux, 5.4.64-1-lts)
- PostgreSQL version: 12.4
Bug description
Hi, I'm developing an AP server ("uptoot") and I'm having trouble with pleroma. I have 3 testing instances (uptoot, mastodon, pleroma) running on the same machine with the same caddy2 transparent reverse proxy configuration.
In both cases, mastodon works perfectly fine but pleroma fails and doesn't log properly.
- Case 1: follow request from uptoot to pleroma: uptoot sends the request, pleroma fetches the actor, logs that it fails to validate the request signature and returns a 400 status code but the actual actor never made it into pleroma's DB.
- Case 2: searching for
@realalice@valhalla2.dev.uptoot.org
on pleroma returns no result even though all fetching requests happen expectedly and with success. There isn't any error/failure log. The actor doesn't make it in the database either.
The logs for both cases: https://pastebin.com/8kTP4Bb4
An example regular uptoot AP actor: https://pastebin.com/1ph7yijx
An example of the uptoot instance special actor: https://pastebin.com/0f45mqN5
Update: I fixed manuallyApprovesFollowers
(now a real boolean) and (icon|image).id
(was null, now removed) fields and now everything works. Pleroma should log something like "invalid AP actor" or be more permissive.
Edited by Alice Gaudon