pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2023-05-08T00:45:35Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/3028search only finds users who start with the search term2023-05-08T00:45:35Zrobinsearch only finds users who start with the search termWhen you search for a user, it only finds results that start with your search term; it would be much more useful (at least to me) if it found results that contain the term.
The specific example that inspired me to open an issue was sear...When you search for a user, it only finds results that start with your search term; it would be much more useful (at least to me) if it found results that contain the term.
The specific example that inspired me to open an issue was searching for an account I'd just added to the instance I use to mirror Twitter accounts so they can be followed from the fediverse (https://twitter.oksocial.net); the account is "PlayARKMobile", but all I could remember was that it was related to Ark.
Searching for "ark" on that instance finds no users, but searching for "play" does find it.
(I had to look back at the the mirror config for the username. :-)https://git.pleroma.social/pleroma/pleroma/-/issues/3026Think about how to handle excessive deletes for the same object2023-05-08T00:35:10ZlainThink about how to handle excessive deletes for the same objectI've come across two misskey objects that I have over 2000 deletes for in my db. This isn't actively hurting anything, but it seems like a bug, although there could be legitimate reasons for sending multiple deletes for the same object. ...I've come across two misskey objects that I have over 2000 deletes for in my db. This isn't actively hurting anything, but it seems like a bug, although there could be legitimate reasons for sending multiple deletes for the same object. Maybe ignoring a delete if we have already deleted the object would be good.tusooatusooahttps://git.pleroma.social/pleroma/pleroma/-/issues/3025Not getting all emoji when downloading pack from remote instance2023-05-08T00:46:46ZHJNot getting all emoji when downloading pack from remote instanceImporting remote emoji pack seem to download first 30 of the pack and fails the rest, emoji are still created but have no files for them.Importing remote emoji pack seem to download first 30 of the pack and fails the rest, emoji are still created but have no files for them.https://git.pleroma.social/pleroma/pleroma/-/issues/3019Force unfollow a relay?2023-05-08T00:51:18ZWalter CoolForce unfollow a relay?Hi,
I been with two damn relays who been stuck for a year and there is no way to get rid of them.
No matter if using Admin FE or CLI to unfollow, they are not removed.
Any good way to workaround this issue? I have no idea where are re...Hi,
I been with two damn relays who been stuck for a year and there is no way to get rid of them.
No matter if using Admin FE or CLI to unfollow, they are not removed.
Any good way to workaround this issue? I have no idea where are relays stored at database.
Thanks!https://git.pleroma.social/pleroma/pleroma/-/issues/3016Infinite app registration2023-05-08T00:52:25ZRenat EskeninInfinite app registrationHi, all. I read Pleroma use Mastodon API contract. So, may be it be interested for developers
https://github.com/mastodon/mastodon/issues/21991
I can fill my instance postgres by unconfirmed accounts and spam by confirmation emails. An...Hi, all. I read Pleroma use Mastodon API contract. So, may be it be interested for developers
https://github.com/mastodon/mastodon/issues/21991
I can fill my instance postgres by unconfirmed accounts and spam by confirmation emails. And can fill postgres by creating registered applications (1.5kk apps on mastodon.social now). I didn't find methods to purge this spam from db for Mastodon or any retention policy, but this API has rate limit.https://git.pleroma.social/pleroma/pleroma/-/issues/3014Jsonrs issues2023-06-07T15:26:27ZZeroJsonrs issues### Environment
* Installation type: Source
* Pleroma version: 2.4.5 stable
* Elixir version: Elixir 1.13.0 (compiled with Erlang/OTP 24)
* Operating system: Ubuntu
* PostgreSQL version: 12.12
### Bug description
So I was looking for...### Environment
* Installation type: Source
* Pleroma version: 2.4.5 stable
* Elixir version: Elixir 1.13.0 (compiled with Erlang/OTP 24)
* Operating system: Ubuntu
* PostgreSQL version: 12.12
### Bug description
So I was looking for ways to speed up Pleroma, and I found [Jsonrs](https://hexdocs.pm/jsonrs/readme.html), the authors claim it to be much faster than Jason and even Jiffy, you can see the graphs in their page.
So anyway, I added it to mix.exs and used the following in my config:
```
config :phoenix, :format_encoders, json: Jsonrs, "activity+json": Jsonrs
config :phoenix, :json_library, Jsonrs
config :postgrex, :json_library, Jsonrs
```
To my surprise, everything seemed to work or so I thought, later I found out anything under the "Settings" menu for admin-fe doesn't seem to work properly when using Jsonrs.
I _think_ I traced the issue to Phoenix not being able to decode the JSON for the settings' descriptions Pleroma sends to it when using Jsonrs, but thats as far I was able to go on my own.
I managed to get a full log of the error by adding `config :logger, truncate: :infinity` to my config, as it was too long and got truncated otherwise.
The log file was upload [here](https://git.pleroma.social/-/snippets/7642/raw/main/jsonrs.log) as it would probably be too long to include in the post.
So what I'm asking is if someone knows how to solve or even work around this issue, because if this Json library is that much faster, it could benefit everyone using Pleroma.https://git.pleroma.social/pleroma/pleroma/-/issues/3013Support for when `type` is an array on remote actor objects2023-05-08T00:42:39ZMichael PuckettSupport for when `type` is an array on remote actor objectsI'm building an ActivityPub server and I am not able to see actor profiles generated by my server on any Pleroma instance.
This seems to be due to Pleroma not supporting when `type` is an array on a remote actor. I believe the spec allo...I'm building an ActivityPub server and I am not able to see actor profiles generated by my server on any Pleroma instance.
This seems to be due to Pleroma not supporting when `type` is an array on a remote actor. I believe the spec allows for this.
If I generate an actor and its `type` is NOT an array, then I can see the actor profile in Pleroma.https://git.pleroma.social/pleroma/pleroma/-/issues/3012Upgrade Swoosh dependency2022-12-31T06:04:26ZZhuoyun WeiUpgrade Swoosh dependencyNewer version of Swoosh ships a useful adapter [ExAwsAmazonSES](https://hexdocs.pm/swoosh/Swoosh.Adapters.ExAwsAmazonSES.html), which wraps AmazonSES to use dynamic credentials fetched from IAM role. This is particular useful if Pleroma ...Newer version of Swoosh ships a useful adapter [ExAwsAmazonSES](https://hexdocs.pm/swoosh/Swoosh.Adapters.ExAwsAmazonSES.html), which wraps AmazonSES to use dynamic credentials fetched from IAM role. This is particular useful if Pleroma is running in an AWS environment.
Currently the OTP release of Pleroma ships Swoosh 1.3.11, which does not include this adapter. Please consider upgrading Swoosh to a newer version.https://git.pleroma.social/pleroma/pleroma/-/issues/3011ForceMentionsInContent MRF mentions users on Misskey instances twice2023-05-08T00:47:34ZYour New SJW WaifuForceMentionsInContent MRF mentions users on Misskey instances twice<!--
### Precheck
* For support use https://git.pleroma.social/pleroma/pleroma-support or [community channels](https://git.pleroma.social/pleroma/pleroma#community-channels).
* Please do a quick search to ensure no similar bug has been ...<!--
### Precheck
* For support use https://git.pleroma.social/pleroma/pleroma-support or [community channels](https://git.pleroma.social/pleroma/pleroma#community-channels).
* Please do a quick search to ensure no similar bug has been reported before. If the bug has not been addressed after 2 weeks, it's fine to bump it.
* Try to ensure that the bug is actually related to the Pleroma backend. For example, if a bug happens in Pleroma-FE but not in Mastodon-FE or mobile clients, it's likely that the bug should be filed in [Pleroma-FE](https://git.pleroma.social/pleroma/pleroma-fe/issues/new) repository.
-->
### Environment
* Installation type (OTP or From Source):
- [ ] The virgin OTP install
- [X] The chad source install
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 20790c1d
* Elixir version (`elixir -v` for from source installations, N/A for OTP):
```
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:24:24] [ds:24:24:10] [async-threads:1] [jit:ns]
Elixir 1.13.4 (compiled with Erlang/OTP 25)
```
* Operating system: ![Ubuntu](https://bae.st/emoji/custom/ubuntu.png) (22.04)
![it just werks](https://bae.st/media/96ca9fab7994bc4ac9c27a3f0d7d2a54917373128bca4dba9ba6544e1e9ff43b.jpg?name=ubuntu_vs_arch.jpg)
* PostgreSQL version (`psql -V`):
```
psql (PostgreSQL) 15.1 (Ubuntu 15.1-1.pgdg22.04+1)
```
**Actually it's 14. No idea what's going on here but that's the output**
Actually I do have an idea but it's a moot point. I have both 14 and 15 installed but I haven't migrated the database yet.
### Bug description
When the ForceMentionsInContent MRF is enabled users on Misskey instances are mentioned twice.
e.g.:
![screenshot of the issue](https://bae.st/media/a5448ab594a763ccccc1cc25baa0dbdc53f3634d0a6efe29ef6c419784567310.png?name=Screenshot_20221129-112753.png)
It seems to be limited exclusively to Misskey instances.https://git.pleroma.social/pleroma/pleroma/-/issues/3004Turn emoji react to mention when reacting to a Mastodon post2023-05-08T00:52:48ZpiggoTurn emoji react to mention when reacting to a Mastodon postProvided pleroma knows what server it's federating to and that server is running a software known to not support emoji reacts, how about the react was turned either into a favourite, or to a mention with just the emoji as text?
now you'...Provided pleroma knows what server it's federating to and that server is running a software known to not support emoji reacts, how about the react was turned either into a favourite, or to a mention with just the emoji as text?
now you'd have to check who is running what before reacting
this could be an optional MRF or somethinghttps://git.pleroma.social/pleroma/pleroma/-/issues/3002full_nickname does not respect webfinger domain setting2023-05-08T00:53:27ZStephen Weberfull_nickname does not respect webfinger domain settingWhen a different webfinger domain is set than the web host, https://git.pleroma.social/pleroma/pleroma/-/blob/develop/lib/pleroma/user.ex#L2230 still generates nicknames using the ap_id which uses the web host, so UI shows the wrong addr...When a different webfinger domain is set than the web host, https://git.pleroma.social/pleroma/pleroma/-/blob/develop/lib/pleroma/user.ex#L2230 still generates nicknames using the ap_id which uses the web host, so UI shows the wrong address.https://git.pleroma.social/pleroma/pleroma/-/issues/3000Suggestion: clarify visibility expectations in https://api.pleroma.social/#op...2023-05-08T00:53:21ZJames CridlandSuggestion: clarify visibility expectations in https://api.pleroma.social/#operation/StatusController.createIn https://api.pleroma.social/#operation/StatusController.create there is a note reading:
> Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List...In https://api.pleroma.social/#operation/StatusController.create there is a note reading:
> Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`
It would be beneficial to developers were this to also include expectations of how this is used; I'd suggest...
> Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`. Bots posting automated statuses are generally expected by the community to be `unlisted`.
This would help new-to-the-fediverse developers like me to, at least, understand the community expectation here, and not put a big foot in it.
I'd make a pull request, but I don't actually know where the documentation lives.https://git.pleroma.social/pleroma/pleroma/-/issues/2997Inform users who are following someone who just got defederated2023-05-08T00:54:32ZJeff CliffInform users who are following someone who just got defederatedhttps://bae.st/objects/4fbd5aea-eb73-48e4-8edd-0117b7f3f496
at least with pleroma-pleroma federation, users should see a message that tells them that the lines of communication between them and the person they think they are following h...https://bae.st/objects/4fbd5aea-eb73-48e4-8edd-0117b7f3f496
at least with pleroma-pleroma federation, users should see a message that tells them that the lines of communication between them and the person they think they are following has snappedhttps://git.pleroma.social/pleroma/pleroma/-/issues/2996LDAP auth saying invald credentals2023-05-08T12:36:50Znoidea manLDAP auth saying invald credentalsI have a config similar to #1646
### environment
* Installation type:
* self build docker image from https://github.com/angristan/docker-pleroma
* ldap authentication
```
import Config
config :pleroma, :instance,
registrations_o...I have a config similar to #1646
### environment
* Installation type:
* self build docker image from https://github.com/angristan/docker-pleroma
* ldap authentication
```
import Config
config :pleroma, :instance,
registrations_open: false
config :pleroma, Pleroma.Web.Auth.PleromaAuthenticator, Pleroma.Web.Auth.LDAPAuthenticator
config :pleroma, :ldap,
enabled: true,
host: "host",
port: 389,
ssl: false,
tls: false,
base: "cn=users,cn=accounts,dc=server,dc=com",
uid: "uid"
```
loging into the webui returns invalid credentials
trying the command listed in the previous issue ends with
```
mix pleroma.user new user user@server.com
Compiling 22 files (.ex)
== Compilation error in file lib/phoenix-1.5.9/priv/templates/phx.gen.channel/channel.ex ==
** (SyntaxError) lib/phoenix-1.5.9/priv/templates/phx.gen.channel/channel.ex:1:13: syntax error before: '='
(elixir 1.11.4) lib/kernel/parallel_compiler.ex:314: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
```
I went to a remote device to see if the mail attribute shows when not authenticating against freeipa's ldap
```
ldapsearch -x -b "cn=users,cn=accounts,dc=server,dc=com" -H ldap://host
```
and it does not show the mail attribute. After allowing anonymous read access it does show
```
ipa permission-add 'Mail readable by anon' --type=user --attrs=mail --bindtype=anonymous --permissions=read
```
But account creation/login still failshttps://git.pleroma.social/pleroma/pleroma/-/issues/2995Webfinger domain config not in cheetsheet2023-05-08T00:54:54ZfeldWebfinger domain config not in cheetsheetWe forgot to do it for !3361We forgot to do it for !3361https://git.pleroma.social/pleroma/pleroma/-/issues/2994Problem following new users2023-05-08T00:55:01ZSimon VandereeckenProblem following new usersSince today I have some troubles following users, it seems to timeout and don't receive the follow request. I encounter fetch problems in the log for timeout and I'm a bit lost:
Example:
4:49:42.432 request_id=Fyi1RrFw8ZxdS9EAALbx [err...Since today I have some troubles following users, it seems to timeout and don't receive the follow request. I encounter fetch problems in the log for timeout and I'm a bit lost:
Example:
4:49:42.432 request_id=Fyi1RrFw8ZxdS9EAALbx [error] Could not decode user at fetch https://mastodon.lol/users/XXXXX, :timeout
I've got pages of errors like this since today where I had no trouble yesterday. I'm on the develop branch of Pleroma, in a Docker environment using those settings: https://github.com/angristan/docker-pleromahttps://git.pleroma.social/pleroma/pleroma/-/issues/2993[Feature Request] Automated post deletion2023-05-08T00:55:10ZSukinoVERSΞpleroma@miraiverse.me[Feature Request] Automated post deletionI think it's good for Pleroma to have the same "Automated post deletion" feature implemented in Mastodon.
Many people prefer to delete their old posts for some period and this will help them on it.
![Screenshot_2022-11-17_at_17.55.15](...I think it's good for Pleroma to have the same "Automated post deletion" feature implemented in Mastodon.
Many people prefer to delete their old posts for some period and this will help them on it.
![Screenshot_2022-11-17_at_17.55.15](/uploads/3d5a213134b6f161dfc4eec30c90260d/Screenshot_2022-11-17_at_17.55.15.png)https://git.pleroma.social/pleroma/pleroma/-/issues/2991Better Oban job result handling2023-05-08T00:55:26ZfeldBetter Oban job result handlingI've noticed there can be quite a few errors in Oban jobs that are not handled properly, e.g., re-queueing of jobs that should be completely discarded.
In Oban all errors are treated as retryable unless you explicitly ~~discard~~ cancel...I've noticed there can be quite a few errors in Oban jobs that are not handled properly, e.g., re-queueing of jobs that should be completely discarded.
In Oban all errors are treated as retryable unless you explicitly ~~discard~~ cancel them. (discard is soft-deprecated)
e.g. the federator incoming queue
```
@impl Oban.Worker
def perform(%Job{args: %{"op" => "incoming_ap_doc", "params" => params}}) do
with {:ok, res} <- Federator.perform(:incoming_ap_doc, params) do
{:ok, res}
else
{:error, :origin_containment_failed} -> {:cancel, :origin_containment_failed}
{:error, {:reject, reason}} -> {:cancel, reason}
e -> e
end
end
```
Any error that is not `:origin_containment_failed` or `:reject` gets retried, and I've noticed a errors in jobs like
```
{:error, {:error, {:validate, {:error, #Ecto.Changeset<action: :insert, changes: %{actor: \\\"https://genau.qwertqwefsday.eu/users/8oxbqesrd1\\\", id: \\\"https://genau.qwertqwefsday.eu/ff2efda8-fab9-4bc8-9206-426ce7080856\\\", object: \\\"https://genau.qwertqwefsday.eu/notes/97jbiakhuo\\\", type: \\\"Delete\\\"}, errors: [object: {\\\"can't find object\\\", []}], data: #Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator<>, valid?: false>}}}}\", \"attempt\": 1}","{\"at\": \"2022-11-13T19:33:48.110564Z\", \"error\": \"** (Oban.PerformError) Pleroma.Workers.ReceiverWorker failed with {:error, {:error, {:validate, {:error, #Ecto.Changeset<action: :insert, changes: %{actor: \\\"https://genau.qwertqwefsday.eu/users/8oxbqesrd1\\\", id: \\\"https://genau.qwertqwefsday.eu/ff2efda8-fab9-4bc8-9206-426ce7080856\\\", object: \\\"https://genau.qwertqwefsday.eu/notes/97jbiakhuo\\\", type: \\\"Delete\\\"}, errors: [object: {\\\"can't find object\\\", []}], data: #Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator<>, valid?: false>}}}}\", \"attempt\": 2}","{\"at\": \"2022-11-13T19:34:08.249125Z\", \"error\": \"** (Oban.PerformError) Pleroma.Workers.ReceiverWorker failed with {:error, {:error, {:validate, {:error, #Ecto.Changeset<action: :insert, changes: %{actor: \\\"https://genau.qwertqwefsday.eu/users/8oxbqesrd1\\\", id: \\\"https://genau.qwertqwefsday.eu/ff2efda8-fab9-4bc8-9206-426ce7080856\\\", object: \\\"https://genau.qwertqwefsday.eu/notes/97jbiakhuo\\\", type: \\\"Delete\\\"}, errors: [object: {\\\"can't find object\\\", []}], data: #Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator<>, valid?: false>}}}}\", \"attempt\": 3}","{\"at\": \"2022-11-13T22:22:27.594277Z\", \"error\": \"** (Oban.PerformError) Pleroma.Workers.ReceiverWorker failed with {:error, {:error, {:validate, {:error, #Ecto.Changeset<action: :insert, changes: %{actor: \\\"https://genau.qwertqwefsday.eu/users/8oxbqesrd1\\\", id: \\\"https://genau.qwertqwefsday.eu/ff2efda8-fab9-4bc8-9206-426ce7080856\\\", object: \\\"https://genau.qwertqwefsday.eu/notes/97jbiakhuo\\\", type: \\\"Delete\\\"}, errors: [object: {\\\"can't find object\\\", []}], data: #Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator<>, valid?: false>}}}}\", \"attempt\": 4}"}
```
I suspect we should catch this one and probably others and handle them appropriately to keep the queues from being filled with tasks that will never complete.https://git.pleroma.social/pleroma/pleroma/-/issues/2990Trimming unused indexes2023-05-08T12:32:14ZfeldTrimming unused indexes```
SELECT
pt.tablename AS TableName
,t.indexname AS IndexName
,pc.reltuples AS TotalRows
,pg_size_pretty(pg_relation_size(quote_ident(pt.tablename)::text)) AS TableSize
,pg_size_pretty(pg_relation_size(quote_ident(t....```
SELECT
pt.tablename AS TableName
,t.indexname AS IndexName
,pc.reltuples AS TotalRows
,pg_size_pretty(pg_relation_size(quote_ident(pt.tablename)::text)) AS TableSize
,pg_size_pretty(pg_relation_size(quote_ident(t.indexrelname)::text)) AS IndexSize
,t.idx_scan AS TotalNumberOfScan
,t.idx_tup_read AS TotalTupleRead
,t.idx_tup_fetch AS TotalTupleFetched
FROM pg_tables AS pt
LEFT OUTER JOIN pg_class AS pc
ON pt.tablename=pc.relname
LEFT OUTER JOIN
(
SELECT
pc.relname AS TableName
,pc2.relname AS IndexName
,psai.idx_scan
,psai.idx_tup_read
,psai.idx_tup_fetch
,psai.indexrelname
FROM pg_index AS pi
JOIN pg_class AS pc
ON pc.oid = pi.indrelid
JOIN pg_class AS pc2
ON pc2.oid = pi.indexrelid
JOIN pg_stat_all_indexes AS psai
ON pi.indexrelid = psai.indexrelid
)AS T
ON pt.tablename = T.TableName
WHERE pt.schemaname='public'
ORDER BY TotalNumberOfScan ASC;
```
You (may) need pg_stat_statements extension enabled for these stats to exist. (?)
![image](/uploads/275e9a9ed8ceda710a984ea1d1a3feef/image.png)
I see a lot of indexes not being used. Would like to see more data from more instances.
Maintaining indexes on `objects.actor_type`, `objects.likes`, `objects.tags`, `activities.to`, `activities.likes`, `activities.in_reply_to`, `activities.hosts`, `activities.cc`, and `activities.actor` but never actually using them seems quite expensive or we need to fix some queries...https://git.pleroma.social/pleroma/pleroma/-/issues/2989Webfinger XML not JSON on Pleroma2023-05-08T00:55:55ZErik BeckWebfinger XML not JSON on PleromaI'm setting up a new pleroma server, and one of the tests I am trying is a remote follow on a Mastodon instance. Remote follows with Mastodon don't work, and it seems in part because Mastodon is expecting a JSON response from my server's...I'm setting up a new pleroma server, and one of the tests I am trying is a remote follow on a Mastodon instance. Remote follows with Mastodon don't work, and it seems in part because Mastodon is expecting a JSON response from my server's webfinger (part of Pleroma) per the RFC for WebFinger (https://www.rfc-editor.org/rfc/rfc7033.html). However, Pleroma's Webfinger returns XML, which isn't expected, standard, or accepted.
How can Pleroma's WebFinger service be setup to return JSON and not XML?
Thanks,
Erik