pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2023-05-08T01:39:23Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/2751Feature: Cross-post Pleroma posts to Twitter2023-05-08T01:39:23ZRajasekhar PonakalaFeature: Cross-post Pleroma posts to TwitterWe need a feature to cross-post every status from Pleroma to Twitter, including Pleroma account address at the end of every status.
It's a great boost for people looking to migrate to Pleroma but didn't want to lose their followers list...We need a feature to cross-post every status from Pleroma to Twitter, including Pleroma account address at the end of every status.
It's a great boost for people looking to migrate to Pleroma but didn't want to lose their followers listening from them. At the end of every status posted to Twitter, we can include Pleroma account address, so followers on Twitter also might get motivation to join Pleroma.
## Solution
### In-built
It is hard to maintain a separate micro-service or [trust a 3rd party service](https://github.com/renatolond/mastodon-twitter-poster), so building this into the core is preferable.
### Plugin
If not in core, there should be a provision for adding it as a [plugin](https://git.pleroma.social/pleroma/pleroma/-/issues/2713)https://git.pleroma.social/pleroma/pleroma/-/issues/2750Have to copy the favicon back after every update2023-05-08T01:43:08ZSnowHave to copy the favicon back after every updateAnd copy the styles.json back also.
I guess no one wants to change back the favicon after every update?And copy the styles.json back also.
I guess no one wants to change back the favicon after every update?https://git.pleroma.social/pleroma/pleroma/-/issues/2747Function request: searching users profile content2023-05-08T01:43:17ZSnowFunction request: searching users profile contentSince group function is still developing, if people can search the information in the profile only, that is easy to build the community by identity.Since group function is still developing, if people can search the information in the profile only, that is easy to build the community by identity.https://git.pleroma.social/pleroma/pleroma/-/issues/2745Bookmark an Object, not an Activity2023-05-08T01:43:28ZAlex GleasonBookmark an Object, not an ActivityRelated to #2744 :upside_down:
Bookmarking a Create or Announce doesn't make sense. You want to bookmark the Note, Article, etc. so it can be rendered easily without the parent activity.Related to #2744 :upside_down:
Bookmarking a Create or Announce doesn't make sense. You want to bookmark the Note, Article, etc. so it can be rendered easily without the parent activity.https://git.pleroma.social/pleroma/pleroma/-/issues/2739prune_old_objects doesn't recalculate reply counts2023-05-08T01:43:44ZHJprune_old_objects doesn't recalculate reply counts![image](/uploads/9335a3d99ff6a6783df3d00171e6c59b/image.png)![image](/uploads/9335a3d99ff6a6783df3d00171e6c59b/image.png)https://git.pleroma.social/pleroma/pleroma/-/issues/2738Add media library feature2023-05-08T01:15:54ZRanjith RajAdd media library feature# Feature request
Media Library, a media management feature that enables a user to search or sort(according to file type, size, licenses etc.) already uploaded media from their account and to add new media items(+bulk upload option), wit...# Feature request
Media Library, a media management feature that enables a user to search or sort(according to file type, size, licenses etc.) already uploaded media from their account and to add new media items(+bulk upload option), with easy to use interface.
# Advantages
- Helpful for reusing already uploaded media in new posts.
- Helps users to manage all the media uploaded by them at one place.
## Other fediverse projects implementing this
- Misskey : https://github.com/misskey-dev/misskey#misskey-drive
Peertube, Funkwhale, Pixelfed etc. are by-design media-centric projects that have media management built-in.https://git.pleroma.social/pleroma/pleroma/-/issues/2737Pleroma randomly dies every once in a while2023-05-08T01:37:59ZHJPleroma randomly dies every once in a while```
Aug 10 02:00:43 shigusegubu3 mix[3337]: 02:00:43.983 [error] GenServer {Oban.Registry, {Oban, Oban.Crontab.Scheduler}} terminating
Aug 10 02:00:43 shigusegubu3 mix[3337]: ** (MatchError) no match of right hand side value: {{:and, [],...```
Aug 10 02:00:43 shigusegubu3 mix[3337]: 02:00:43.983 [error] GenServer {Oban.Registry, {Oban, Oban.Crontab.Scheduler}} terminating
Aug 10 02:00:43 shigusegubu3 mix[3337]: ** (MatchError) no match of right hand side value: {{:and, [], [{:==, [], [{{:., [], [{:&, [], [0]}, :worker]}, [], []}, {:^, [], [0]}]}, {:^, [], [1]}]}, [{"Pleroma.Workers.Cron.NewUsersDigestWorker", {0, :worker}}
, {%Inspect.Error{message: "got MatchError with message \"no match of right hand side value: {{:and, [], [{:==, [], [{{:., [], [{:&, [], [0]}, :queue]}, [], []}, {:^, [], [0]}]}, {:^, [], [1]}]}, [{\\\"new_users_digest\\\", {0, :queue}}, {%{__struct__: Ec
to.Query.DynamicExpr, binding: [{:j, [line: 290], nil}], file: \\\"/home/pleroma/pleroma/deps/oban/lib/oban/query.ex\\\", fun: #Function<8.89406984/1 in Oban.Query.unique_field/2>, line: 290}, :boolean}]}\" while inspecting %{__struct__: Ecto.Query.Dynami
cExpr, binding: [{:j, [line: 290], nil}], file: \"/home/pleroma/pleroma/deps/oban/lib/oban/query.ex\", fun: #Function<8.89406984/1 in Oban.Query.unique_field/2>, line: 290}"}, :boolean}]}
Aug 10 02:00:43 shigusegubu3 mix[3337]: (ecto 3.6.2) lib/ecto/query/builder/dynamic.ex:54: Ecto.Query.Builder.Dynamic.expand/3
Aug 10 02:00:43 shigusegubu3 mix[3337]: (ecto 3.6.2) lib/ecto/query/builder/dynamic.ex:32: Ecto.Query.Builder.Dynamic.fully_expand/2
Aug 10 02:00:43 shigusegubu3 mix[3337]: (ecto 3.6.2) lib/ecto/query/builder/filter.ex:133: Ecto.Query.Builder.Filter.filter!/7
Aug 10 02:00:43 shigusegubu3 mix[3337]: (oban 2.3.4) lib/oban/query.ex:270: Oban.Query.unique_query/1
Aug 10 02:00:43 shigusegubu3 mix[3337]: (oban 2.3.4) lib/oban/query.ex:231: Oban.Query.insert_unique/2
Aug 10 02:00:43 shigusegubu3 mix[3337]: (ecto_sql 3.6.2) lib/ecto/adapters/sql.ex:1017: anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4
Aug 10 02:00:43 shigusegubu3 mix[3337]: (db_connection 2.4.0) lib/db_connection.ex:844: DBConnection.transaction/3
Aug 10 02:00:43 shigusegubu3 mix[3337]: (oban 2.3.4) lib/oban/query.ex:45: Oban.Query.fetch_or_insert_job/2
Aug 10 02:00:43 shigusegubu3 mix[3337]: Last message: {:continue, :start}
Aug 10 02:00:43 shigusegubu3 mix[3337]: State: %Oban.Crontab.Scheduler.State{circuit: :enabled, conf: %Oban.Config{circuit_backoff: 30000, crontab: [{%Oban.Crontab.Cron{days: [:*], hours: [0], minutes: [0], months: [:*], reboot: false, weekdays: [0]}, Ple
roma.Workers.Cron.DigestEmailsWorker, []}, {%Oban.Crontab.Cron{days: [:*], hours: [0], minutes: [0], months: [:*], reboot: false, weekdays: [:*]}, Pleroma.Workers.Cron.NewUsersDigestWorker, []}], dispatch_cooldown: 5, get_dynamic_repo: nil, log: false, na
me: Oban, node: "shigusegubu3", plugins: [Oban.Plugins.Pruner], poll_interval: 1000, prefix: "public", queues: [activity_expiration: [limit: 10], token_expiration: [limit: 5], filter_expiration: [limit: 1], backup: [limit: 1], federator_incoming: [limit:
50], federator_outgoing: [limit: 50], ingestion_queue: [limit: 50], web_push: [limit: 50], mailer: [limit: 10], transmogrifier: [limit: 20], scheduled_activities: [limit: 10], background: [limit: 5], remote_fetcher: [limit: 2], attachments_cleanup: [limit
: 1], new_users_digest: [limit: 1], mute_expire: [limit: 5]], repo: Pleroma.Repo, shutdown_grace_period: 15000, timezone: "Etc/UTC"}, first_run?: true, name: nil, poll_interval: 60000, poll_ref: nil, reset_timer: nil}
Aug 10 02:00:43 shigusegubu3 mix[3337]: 02:00:43.992 [error] GenServer {Oban.Registry, {Oban, Oban.Crontab.Scheduler}} terminating
```
(sameish stuff repeated multiple times)
```
Aug 10 02:00:45 shigusegubu3 mix[3337]: 02:00:45.459 request_id=FpnI5fqsy6hRc24AD0vi [info] Sent 404 in 15113ms
Aug 10 02:00:45 shigusegubu3 mix[3337]: 02:00:45.459 request_id=FpnI5gw3D3APFdwABEnE [info] Sent 404 in 14817ms
Aug 10 02:00:45 shigusegubu3 mix[3337]: 02:00:45.459 request_id=FpnI5geWBx3wuAsAE2Jh [info] Sent 404 in 14896ms
Aug 10 02:00:46 shigusegubu3 mix[3337]: 02:00:46.176 [info] Application pleroma exited: shutdown
Aug 10 02:00:47 shigusegubu3 mix[3337]: {"Kernel pid terminated",application_controller,"{application_terminated,pleroma,shutdown}"}
Aug 10 02:00:47 shigusegubu3 mix[3337]: Kernel pid terminated (application_controller) ({application_terminated,pleroma,shutdown})
Aug 10 02:00:47 shigusegubu3 mix[3337]: [1B blob data]
Aug 10 02:00:48 shigusegubu3 mix[3337]: Crash dump is being written to: erl_crash.dump...done
```
after which it's automatically restarted by systemdhttps://git.pleroma.social/pleroma/pleroma/-/issues/2736Can't fav, can't reprööt 2yo post2023-05-08T01:43:52ZHJCan't fav, can't reprööt 2yo posthttps://shigusegubu.club/notice/9hQVCnO6YTybPxrwC8
can emoji react tho.https://shigusegubu.club/notice/9hQVCnO6YTybPxrwC8
can emoji react tho.https://git.pleroma.social/pleroma/pleroma/-/issues/2731background_image don't updates at /api/v1/instance2023-05-08T01:45:04ZYevhenii Zapletinbackground_image don't updates at /api/v1/instanceI am trying to update background_image via Pleroma Admin FE.
`Settings->Frontend->Background`
It is updates at `/api/pleroma/frontend_configurations` but `/api/v1/instance` still have old value.
Actual background image changed and Ple...I am trying to update background_image via Pleroma Admin FE.
`Settings->Frontend->Background`
It is updates at `/api/pleroma/frontend_configurations` but `/api/v1/instance` still have old value.
Actual background image changed and Pleroma FE displays an updated image.
I am developing a mobile application for Pleroma and display a background image in it. I started load background value from `/api/pleroma/frontend_configurations` but I think data should be consistent. `background_image` field should be removed from `/api/v1/instance` or return same value as for `/api/pleroma/frontend_configurations`https://git.pleroma.social/pleroma/pleroma/-/issues/2729terminate_worker/3 crashes Pleroma from time to time.2023-05-08T01:45:10ZNEETzscheterminate_worker/3 crashes Pleroma from time to time.```
Jul 29 00:22:06 iddqd mix[21847]: 00:22:06.932 [error] Error during FastHtml.Pool.terminate_worker/3 callback:
Jul 29 00:22:06 iddqd mix[21847]: ** (ArgumentError) argument error
Jul 29 00:22:06 iddqd mix[21847]: :erlang.port_clo...```
Jul 29 00:22:06 iddqd mix[21847]: 00:22:06.932 [error] Error during FastHtml.Pool.terminate_worker/3 callback:
Jul 29 00:22:06 iddqd mix[21847]: ** (ArgumentError) argument error
Jul 29 00:22:06 iddqd mix[21847]: :erlang.port_close(#Port<0.19397>)
Jul 29 00:22:06 iddqd mix[21847]: (fast_html 2.0.4) lib/fast_html/pool.ex:95: FastHtml.Pool.terminate_worker/3
Jul 29 00:22:06 iddqd mix[21847]: (nimble_pool 0.1.0) lib/nimble_pool.ex:618: NimblePool.apply_worker_callback/3
Jul 29 00:22:06 iddqd mix[21847]: (nimble_pool 0.1.0) lib/nimble_pool.ex:562: NimblePool.maybe_terminate_worker/3
Jul 29 00:22:06 iddqd mix[21847]: (nimble_pool 0.1.0) lib/nimble_pool.ex:551: NimblePool.remove/3
Jul 29 00:22:06 iddqd mix[21847]: (nimble_pool 0.1.0) lib/nimble_pool.ex:453: NimblePool.cancel_request_ref/3
Jul 29 00:22:06 iddqd mix[21847]: (stdlib 3.15.2) gen_server.erl:695: :gen_server.try_dispatch/4
Jul 29 00:22:06 iddqd mix[21847]: (stdlib 3.15.2) gen_server.erl:771: :gen_server.handle_msg/6
```
I have to `systemctl restart pleroma.service` to rectify this. Did I do something wrong?https://git.pleroma.social/pleroma/pleroma/-/issues/2727MediaProxy error for unknown status codes2023-05-08T01:45:21ZAlex GleasonMediaProxy error for unknown status codesSeems like when the MediaProxy fails, it attempts to translate the status code into a string for logs. When the status code is not an RFC status code, it results in an error:
```
Jul 27 10:25:54 frontend.poa.st mix[2046241]: Server: pho...Seems like when the MediaProxy fails, it attempts to translate the status code into a string for logs. When the status code is not an RFC status code, it results in an error:
```
Jul 27 10:25:54 frontend.poa.st mix[2046241]: Server: phoenix:80 (http)
Jul 27 10:25:54 frontend.poa.st mix[2046241]: Request: GET /proxy/abcd/efg/hijk.jpg
Jul 27 10:25:54 frontend.poa.st mix[2046241]: ** (exit) an exception was raised:
Jul 27 10:25:54 frontend.poa.st mix[2046241]: ** (ArgumentError) unknown status code 523
Jul 27 10:25:54 frontend.poa.st mix[2046241]: Custom codes can be defined in the configuration for the :plug application,
Jul 27 10:25:54 frontend.poa.st mix[2046241]: under the :statuses key (which contains a map of status codes as keys and
Jul 27 10:25:54 frontend.poa.st mix[2046241]: reason phrases as values). For example:
Jul 27 10:25:54 frontend.poa.st mix[2046241]: config :plug, :statuses, %{998 => "Not An RFC Status Code"}
Jul 27 10:25:54 frontend.poa.st mix[2046241]: After defining the config for custom statuses, Plug must be recompiled for
Jul 27 10:25:54 frontend.poa.st mix[2046241]: the changes to take place using:
Jul 27 10:25:54 frontend.poa.st mix[2046241]: MIX_ENV=dev mix deps.clean plug --build
Jul 27 10:25:54 frontend.poa.st mix[2046241]: Doing this will allow the use of the integer status code 998 as
Jul 27 10:25:54 frontend.poa.st mix[2046241]: well as the atom :unavailable_for_legal_reasons in many Plug functions.
Jul 27 10:25:54 frontend.poa.st mix[2046241]: For example:
Jul 27 10:25:54 frontend.poa.st mix[2046241]: put_status(conn, :not_an_rfc_status_code)
```
I'm seeing errors for 523 and 526, mostly 523. These come from Cloudflare: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#523
I'm not sure the best way to handle this. We could catch the call to `Plug.Conn.Status.reason_phrase/1` and return "unknown error". Or we could add Cloudflare status codes to the Plug config.
EDIT: In Soapbox I just added Cloudflare status codes to the config: https://gitlab.com/soapbox-pub/soapbox/-/merge_requests/47/diffshttps://git.pleroma.social/pleroma/pleroma/-/issues/2724Direct Messages timeline: error 500 (pg timeout)2023-05-08T01:45:28ZdashieDirect Messages timeline: error 500 (pg timeout)Using pleroma stable 2.3.0, postgres 12.7
When browsing to `/users/me/dms` the list is empty, and clicking on `Load older statuses` returns an error 500, pleroma logs shows:
```
Jul 25 20:18:12 fedistodon mix[19079]: 20:18:12.407 [info]...Using pleroma stable 2.3.0, postgres 12.7
When browsing to `/users/me/dms` the list is empty, and clicking on `Load older statuses` returns an error 500, pleroma logs shows:
```
Jul 25 20:18:12 fedistodon mix[19079]: 20:18:12.407 [info] GET /api/v1/timelines/direct
...
Jul 25 20:18:27 fedistodon mix[19079]: 20:18:27.418 [error] Postgrex.Protocol (#PID<0.1149.0>) disconnected: ** (DBConnection.ConnectionError) client #PID<0.5330.243> timed out because it queued and checked out the connection for longer than 15000ms
Jul 25 20:18:27 fedistodon mix[19079]: #PID<0.5330.243> was at location:
Jul 25 20:18:27 fedistodon mix[19079]: :prim_inet.recv0/3
Jul 25 20:18:27 fedistodon mix[19079]: (postgrex 0.15.7) lib/postgrex/protocol.ex:2838: Postgrex.Protocol.msg_recv/4
Jul 25 20:18:27 fedistodon mix[19079]: (postgrex 0.15.7) lib/postgrex/protocol.ex:1880: Postgrex.Protocol.recv_bind/3
Jul 25 20:18:27 fedistodon mix[19079]: (postgrex 0.15.7) lib/postgrex/protocol.ex:1735: Postgrex.Protocol.bind_execute_close/4
Jul 25 20:18:27 fedistodon mix[19079]: (db_connection 2.3.1) lib/db_connection/holder.ex:316: DBConnection.Holder.holder_apply/4
Jul 25 20:18:27 fedistodon mix[19079]: (db_connection 2.3.1) lib/db_connection.ex:1272: DBConnection.run_execute/5
Jul 25 20:18:27 fedistodon mix[19079]: (db_connection 2.3.1) lib/db_connection.ex:1359: DBConnection.run/6
Jul 25 20:18:27 fedistodon mix[19079]: (db_connection 2.3.1) lib/db_connection.ex:557: DBConnection.parsed_prepare_execute/5
Jul 25 20:18:27 fedistodon mix[19079]: 20:18:27.420 request_id=FpUbg5pO-R2nslUBIjkC [error] Internal server error: %DBConnection.ConnectionError{message: "tcp recv: closed (the connection was closed by the pool, possibly due to a timeout or because the pool has been terminated)", reason: :error, severity: :error}
Jul 25 20:18:27 fedistodon mix[19079]: 20:18:27.420 request_id=FpUbg5pO-R2nslUBIjkC [info] Sent 500 in 15013ms
Jul 25 20:18:27 fedistodon mix[19079]: 20:18:27.421 [error] #PID<0.5330.243> running Pleroma.Web.Endpoint (connection #PID<0.5498.243>, stream id 1) terminated
Jul 25 20:18:27 fedistodon mix[19079]: Server: pleroma.blah:80 (http)
Jul 25 20:18:27 fedistodon mix[19079]: Request: GET /api/v1/timelines/direct?with_muted=true&limit=20
Jul 25 20:18:27 fedistodon mix[19079]: ** (exit) an exception was raised:
Jul 25 20:18:27 fedistodon mix[19079]: ** (DBConnection.ConnectionError) tcp recv: closed (the connection was closed by the pool, possibly due to a timeout or because the pool has been terminated)
Jul 25 20:18:27 fedistodon mix[19079]: (ecto_sql 3.4.5) lib/ecto/adapters/sql.ex:593: Ecto.Adapters.SQL.raise_sql_call_error/1
Jul 25 20:18:27 fedistodon mix[19079]: (ecto_sql 3.4.5) lib/ecto/adapters/sql.ex:526: Ecto.Adapters.SQL.execute/5
Jul 25 20:18:27 fedistodon mix[19079]: (ecto 3.4.6) lib/ecto/repo/queryable.ex:192: Ecto.Repo.Queryable.execute/4
Jul 25 20:18:27 fedistodon mix[19079]: (ecto 3.4.6) lib/ecto/repo/queryable.ex:17: Ecto.Repo.Queryable.all/3
Jul 25 20:18:27 fedistodon mix[19079]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/pagination.ex:40: Pleroma.Pagination.fetch_paginated/4
Jul 25 20:18:27 fedistodon mix[19079]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:84: Pleroma.Web.MastodonAPI.TimelineController.direct/2
Jul 25 20:18:27 fedistodon mix[19079]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:5: Pleroma.Web.MastodonAPI.TimelineController.action/2
Jul 25 20:18:27 fedistodon mix[19079]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:5: Pleroma.Web.MastodonAPI.TimelineController.phoenix_controller_pipeline/2
```
Using the mastofe it load the conversations fine.https://git.pleroma.social/pleroma/pleroma/-/issues/2723Add "instances" endpoints2023-05-08T01:45:35ZAlex GleasonAdd "instances" endpointsThis is something I've been thinking about for a while but haven't had time to do yet, so I wanted to write some thoughts.
We can now view instance timelines, and there are some AdminAPI actions that work on instances:
- GET `/api/v1/t...This is something I've been thinking about for a while but haven't had time to do yet, so I wanted to write some thoughts.
We can now view instance timelines, and there are some AdminAPI actions that work on instances:
- GET `/api/v1/timelines/public?instance=lain.com` - get instance timeline
- GET `/api/v1/pleroma/amin/instances/:instance/statuses` - AdminAPI: get instance statuses
- DELETE `/api/v1/pleroma/amin/instances/:instance` - AdminAPI: delete an instance (proposed by !3483)
Now I would like the ability to get information about instances through the API.
#### GET `/api/v1/pleroma/instances/:host`
Response:
- `id` - primary key of the instance in the `instances` table of the database
- `host` - the instance hostname
- `favicon` - URL to the instance favicon, if favicon scraping is enabled
- `federation_restrictions` - a map of MRF policies with boolean fields
Example response:
```json
{
"id": "A9eWMGiX7eOMbHk4lE",
"host": "gleasonator.com",
"favicon": "https://gleasonator.com/favicon.png",
"federation_restrictions": {
"simple_policy": {
"accept": false,
"avatar_removal": false,
"banner_removal": false,
"federated_timeline_removal": false,
"followers_only": false,
"media_nsfw" :false,
"media_removal": false,
"reject": false,
"reject_deletes": false,
"report_removal": false
},
"quarantined": false
}
}
```
This would make it easier to display an "instance" as an entity through the frontend. Some information like the instance favicon are just impossible to retrieve without trying to extract it from users of that instance, and having an endpoint would solve it.
In the future, I could imagine expanding this to display more data about the remote instance. For example, it may be possible to retrieve information like a display name, description, and stats.https://git.pleroma.social/pleroma/pleroma/-/issues/2721Problem: Pagination may cause posts to be skipped in federation2021-07-22T02:57:02ZDavid SterryProblem: Pagination may cause posts to be skipped in federationThis isn't confirmed but coming out of a discussion about ActivityPub collections at https://socialhub.activitypub.rocks/t/implementing-paginated-inbox-collections/1919/4?u=weex in the section Example Inbox Implementations, @mag there su...This isn't confirmed but coming out of a discussion about ActivityPub collections at https://socialhub.activitypub.rocks/t/implementing-paginated-inbox-collections/1919/4?u=weex in the section Example Inbox Implementations, @mag there supposes that the way pleroma does pagination may cause some posts to be skipped if a post is made while fetching is going on. Opening this to track investigation.https://git.pleroma.social/pleroma/pleroma/-/issues/2720Crash in NewUsersDigestWorker: "no match of right hand value" in Oban2023-05-08T01:38:06ZNeil E. HodgesCrash in NewUsersDigestWorker: "no match of right hand value" in Oban### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.3.50-504-g891d2d22
* Elixir version (`elixir -v` for from source installations, N/A for O...### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.3.50-504-g891d2d22
* Elixir version (`elixir -v` for from source installations, N/A for OTP): OTP
* Operating system: Debian 10.2
* PostgreSQL version (`psql -V`): 11.5 (Debian 11.5-1+deb10u1)
### Bug description
Pleroma crashed with this error:
```
Jul 19 17:00:24 bbs.kawa-kun.com mix[13957]: ** (MatchError) no match of right hand side value: {{:and, [], [{:==, [], [{{:., [], [{:&, [], [0]}, :worker]}, [], []}, {:^, [], [0]}]}, {:^, [], [1]}]}, [{"Pleroma.Workers.Cron.NewUsersDigestWorker", {0, :worker}}, {%Inspect.Error{message: "got MatchError with message \"no match of right hand side value: {{:and, [], [{:==, [], [{{:., [], [{:&, [], [0]}, :queue]}, [], []}, {:^, [], [0]}]}, {:^, [], [1]}]}, [{\\\"new_users_digest\\\", {0, :queue}}, {%{__struct__: Ecto.Query.DynamicExpr, binding: [{:j, [line: 290], nil}], file: \\\"/opt/pleroma/deps/oban/lib/oban/query.ex\\\", fun: #Function<8.74301835/1 in Oban.Query.unique_field/2>, line: 290}, :boolean}]}\" while inspecting %{__struct__: Ecto.Query.DynamicExpr, binding: [{:j, [line: 290], nil}], file: \"/opt/pleroma/deps/oban/lib/oban/query.ex\", fun: #Function<8.74301835/1 in Oban.Query.unique_field/2>, line: 290}"}, :boolean}]}
```
More logs are in [pleroma.log.xz](/uploads/09df8580741c546e6bb982047a874fc3/pleroma.log.xz).https://git.pleroma.social/pleroma/pleroma/-/issues/2718Create a more consistent and/or frequent stable release schedule?2023-05-08T01:47:32ZSean KingCreate a more consistent and/or frequent stable release schedule?I'm not gonna lie when I say that I've been more and more irritated by this as of recent. As much as I like Pleroma, I wish there was more consistency and/or frequency in stable releases. With a lot of what's been recently changed in the...I'm not gonna lie when I say that I've been more and more irritated by this as of recent. As much as I like Pleroma, I wish there was more consistency and/or frequency in stable releases. With a lot of what's been recently changed in the develop branch (i.e. Erlang 24 compatibility), it makes no sense to me that there's not been a new stable release since about 4 months ago. What's the reason behind the lack of stable releases lately? And is there a more consistent schedule that Pleroma could adhere to? Because otherwise, I've been very tempted to switch to the develop branch of Pleroma, which I believe is not a good or recommended practice.https://git.pleroma.social/pleroma/pleroma/-/issues/2717Admin API endpoint internal server error when adding an available frontend vi...2023-05-08T01:48:17ZSean KingAdmin API endpoint internal server error when adding an available frontend via AdminFEVersion is Pleroma 2.3 (latest stable branch; from source).
See screenshots and log below:
![Screenshot_from_2021-07-17_11-29-56](/uploads/153ca07cb18289c7057d3d4ea4f8d3d1/Screenshot_from_2021-07-17_11-29-56.png)
![Screenshot_from_202...Version is Pleroma 2.3 (latest stable branch; from source).
See screenshots and log below:
![Screenshot_from_2021-07-17_11-29-56](/uploads/153ca07cb18289c7057d3d4ea4f8d3d1/Screenshot_from_2021-07-17_11-29-56.png)
![Screenshot_from_2021-07-17_11-29-33](/uploads/0a51934bd48b0d8f80e1efff0efb2af1/Screenshot_from_2021-07-17_11-29-33.png)
Log:
```
Jul 17 13:27:20 [redacted] mix[23632]: Request: GET /api/v1/pleroma/admin/frontends
Jul 17 13:27:20 [redacted] mix[23632]: ** (exit) an exception was raised:
Jul 17 13:27:20 [redacted] mix[23632]: ** (BadMapError) expected a map, got: "static"
Jul 17 13:27:20 [redacted] mix[23632]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/admin_api/controllers/frontend_controller.ex:25: anonymous fn/2 in Pleroma.Web.AdminAPI.FrontendController.index/2
Jul 17 13:27:20 [redacted] mix[23632]: (elixir 1.11.2) lib/enum.ex:1403: anonymous fn/3 in Enum.map/2
Jul 17 13:27:20 [redacted] mix[23632]: (stdlib 3.14.1) maps.erl:233: :maps.fold_1/3
Jul 17 13:27:20 [redacted] mix[23632]: (elixir 1.11.2) lib/enum.ex:2197: Enum.map/2
Jul 17 13:27:20 [redacted] mix[23632]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/admin_api/controllers/frontend_controller.ex:24: Pleroma.Web.AdminAPI.FrontendController.index/2
Jul 17 13:27:20 [redacted] mix[23632]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/admin_api/controllers/frontend_controller.ex:5: Pleroma.Web.AdminAPI.FrontendController.action/2
Jul 17 13:27:20 [redacted] mix[23632]: (pleroma 2.3.0-1-gb221d77a) lib/pleroma/web/admin_api/controllers/frontend_controller.ex:5: Pleroma.Web.AdminAPI.FrontendController.phoenix_controller_pipeline/2
Jul 17 13:27:20 [redacted] mix[23632]: (phoenix 1.5.6) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
```https://git.pleroma.social/pleroma/pleroma/-/issues/2714Cannot use SOCKS5 proxies2023-05-08T01:50:13ZKay FaradayCannot use SOCKS5 proxies```
Request: GET /api/v1/timelines/public?local=true&only_media=false&with_muted=true&limit=20
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in :inet_tcp.getserv/1
(kernel 7.3.1.2) in...```
Request: GET /api/v1/timelines/public?local=true&only_media=false&with_muted=true&limit=20
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in :inet_tcp.getserv/1
(kernel 7.3.1.2) inet_tcp.erl:55: :inet_tcp.getserv("9050")
(kernel 7.3.1.2) gen_tcp.erl:181: :gen_tcp.connect1/4
(kernel 7.3.1.2) gen_tcp.erl:165: :gen_tcp.connect/4
(hackney 1.15.2) /opt/pleroma/deps/hackney/src/hackney_socks5.erl:65: :hackney_socks5.connect/4
(hackney 1.15.2) /opt/pleroma/deps/hackney/src/hackney_connect.erl:277: :hackney_connect.do_connect/5
(hackney 1.15.2) /opt/pleroma/deps/hackney/src/hackney_connect.erl:47: :hackney_connect.connect/5
(hackney 1.15.2) /opt/pleroma/deps/hackney/src/hackney.erl:333: :hackney.request/5
(tesla 1.4.0) lib/tesla/adapter/hackney.ex:71: Tesla.Adapter.Hackney.request/5
```
This happens with any port. What's weird is, the traceback includes `:inet_tcp.getserv("9050")` but that is the port I configured. I don't know why the traceback includes a hardcoded string. Anyway it looks like the fix is just to pass an int to :inet_tcp.getserv rather than a string for the port.https://git.pleroma.social/pleroma/pleroma/-/issues/2713Introduce a plugin/extension/module system2023-05-08T01:39:16ZRanjith RajIntroduce a plugin/extension/module system# Feature request
Introduce a mechanism that allows admins the ability to extend functionality of Pleroma by loading plugins/extensions/modules.
## Advantages
- Increases customize-ability of Pleroma, hopefully thus increases adoption...# Feature request
Introduce a mechanism that allows admins the ability to extend functionality of Pleroma by loading plugins/extensions/modules.
## Advantages
- Increases customize-ability of Pleroma, hopefully thus increases adoption too.
- It is easier to maintain a module than a fork altogether.
- More developers can contribute to Pleroma ecosystem.
## Other fediverse projects implementing this
- Peertube : https://docs.joinpeertube.org/contribute-plugins
- Funkwhale : https://docs.funkwhale.audio/developers/plugins.html
### WIP
- Pixelfed : https://github.com/pixelfed/paehttps://git.pleroma.social/pleroma/pleroma/-/issues/2712Add `autosubscribed_users` feature2023-05-08T01:50:29ZAlex GleasonAdd `autosubscribed_users` featureSo you know how we can have autofollowed_users and autofollowing_users? Imagine if we had autosubscribed_users. When a new user signs up, they would be automatically subscribed to receive notifications from the chosen accounts.
This is ...So you know how we can have autofollowed_users and autofollowing_users? Imagine if we had autosubscribed_users. When a new user signs up, they would be automatically subscribed to receive notifications from the chosen accounts.
This is basically a way of setting up makeshift admin announcements except it's even better than Mastodon's version allowing for maximum flexibility. You could create an account representing your instance and set it to be autosubscribed, and you'll never have to worry about users missing important messages about downtime etc.