pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2023-05-08T01:45:21Zhttps://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.https://git.pleroma.social/pleroma/pleroma/-/issues/2708Can not find Forum-account or other identity on fediverse2023-05-08T01:50:20ZJakob SchürzCan not find Forum-account or other identity on fediverseWhen i search for example for @h0e@friendica.schuerz.at or @kalauer@friendica.schuerz.at on my pleroma-instance, i can not find this users.
From other AP-Services (Misskey for example works, and i also tested pixelfed, and from mastodo...When i search for example for @h0e@friendica.schuerz.at or @kalauer@friendica.schuerz.at on my pleroma-instance, i can not find this users.
From other AP-Services (Misskey for example works, and i also tested pixelfed, and from mastodon it workes also) i can find this users and follow.
On friendica i can make an identity dependend from another one. Which is parenting the other, so i can switch between different identities on friendica. From outside they all are "full" users.
Only pleroma can't find this accounts.
Please try it with the named accounts on my friendica-instance to verify my bug.
You should find @jakob@friendica.schuerz.at
You shouldn't find @yoga@friendica.schuerz.at or @kalauer@friendica.schuerz.athttps://git.pleroma.social/pleroma/pleroma/-/issues/2707Incorrect space character encoding when generating OTP QR Code2023-05-08T01:51:11ZmcgroartyIncorrect space character encoding when generating OTP QR CodeWhen generating a QR Code for OTP enrollment, some sites include space characters in the issuer field. These are encoded as plus characters rather than space characters.When generating a QR Code for OTP enrollment, some sites include space characters in the issuer field. These are encoded as plus characters rather than space characters.https://git.pleroma.social/pleroma/pleroma/-/issues/2706Use username instead of email address for OTP labels2023-05-08T01:52:11ZmcgroartyUse username instead of email address for OTP labelsWhen generating a QR Code for OTP enrollment, the issuer is the site name, and the label is the user's email address.
Consider using the account name rather than the email address. Email addresses are mutable. Account names are less lik...When generating a QR Code for OTP enrollment, the issuer is the site name, and the label is the user's email address.
Consider using the account name rather than the email address. Email addresses are mutable. Account names are less likely to change, and are usually shorter.https://git.pleroma.social/pleroma/pleroma/-/issues/2705Hide boosts in timelines occuring right after the original post2023-05-08T01:48:26ZKay FaradayHide boosts in timelines occuring right after the original postMastodon now supports a feature where all boosts that occur immediately after the original post are hidden. Compare NNIA.space and pedo.house:
![image](/uploads/c1604eeb15b17de0517b29202a94fbab/image.png)
![image](/uploads/477502b1dc7d...Mastodon now supports a feature where all boosts that occur immediately after the original post are hidden. Compare NNIA.space and pedo.house:
![image](/uploads/c1604eeb15b17de0517b29202a94fbab/image.png)
![image](/uploads/477502b1dc7d06c48d0c007dfda57059/image.png)
I follow a few relays because I want to see all their posts on my timeline, but I also follow some of the relayed users in case they make a private or unlisted post, and so that I can see posts from new users. As such I would love to see this feature implemented.https://git.pleroma.social/pleroma/pleroma/-/issues/2703Cannot search2023-05-08T01:52:50ZKay FaradayCannot searchWhenever I search for anything from my instance, the search fails instantly, I get no results, and I get two errors in the logs:
```
Jul 08 22:57:07 pedo.house bash[16482]: 22:57:07.997 [info] GET /api/v2/search
Jul 08 22:57:08 pedo.hou...Whenever I search for anything from my instance, the search fails instantly, I get no results, and I get two errors in the logs:
```
Jul 08 22:57:07 pedo.house bash[16482]: 22:57:07.997 [info] GET /api/v2/search
Jul 08 22:57:08 pedo.house bash[16482]: 22:57:08.004 [error] Elixir.Pleroma.Web.MastodonAPI.SearchController search error: %CaseClauseError{term: {"", %Pleroma.User{subscriber_users: #Ecto.Association.NotLoaded<association :subscriber_users is not loaded>, domain_blocks: [], show_role: false, is_moderator: false, confirmation_token: nil, multi_factor_authentication_settings: %Pleroma.MFA.Settings{backup_codes: [], enabled: false, totp: nil}, is_discoverable: false, blocker_users: #Ecto.Association.NotLoaded<association :blocker_users is not loaded>, mascot: nil, follower_count: 70, name: "Kay Faraday", inserted_at: ~N[2021-07-02 06:18:16], muter_users: #Ecto.Association.NotLoaded<association :muter_users is not loaded>, last_refreshed_at: nil, following_address: nil, outgoing_relationships: #Ecto.Association.NotLoaded<association :outgoing_relationships is not loaded>, is_active: true, follower_address: "https://pedo.house/users/KayFaraday/followers", mastofe_settings: %{"columns" => [%{"id" => "COMPOSE", "params" => %{}, "uuid" => "de2e3350-5071-4120-a4a7-4790bcc06325"}, %{"id" => "HOME", "params" => %{}, "uuid" => "c34ea366-3099-4d6e-bed3-135b85a4d525"}, %{"id" => "NOTIFICATIONS", "params" => %{}, "uuid" => "7a2177d5-7f91-4524-b7fd-ffe6fb26a924"}], "community" => %{"regex" => %{"body" => ""}}, "direct" => %{"conversations" => true, "regex" => %{"body" => ""}}, "home" => %{"regex" => %{"body" => ""}, "shows" => %{"direct" => true, "reblog" => true, "reply" => true}}, "layout" => "auto", "notifications" => %{"alerts" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}, "quickFilter" => %{"active" => "all", "advanced" => false, "show" => true}, "shows" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}, "sounds" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}}, "onboarded" => true, "public" => %{"regex" => %{"body" => ""}}, "skinTone" => 1, "trends" => %{"show" => true}}, muted_notifications: [], last_active_at: ~N[2021-07-08 07:15:11], notification_muter_mutes: #Ecto.Association.NotLoaded<association :notification_muter_mutes is not loaded>, bio: "Hi there! I'm Kay, 'kay? I'm the successor to the name of Yatagarasu, a former loli, and now a Pleroma admin!", is_locked: false, reblog_muter_mutes: #Ecto.Association.NotLoaded<association :reblog_muter_mutes is not loaded>, hide_favorites: true, actor_type: "Person", reblog_mutee_mutes: #Ecto.Association.NotLoaded<association :reblog_mutee_mutes is not loaded>, muted_reblogs: [], muted_users: #Ecto.Association.NotLoaded<association :muted_users is not loaded>, hide_follows_count: false, password_confirmation: nil, is_admin: true, avatar: %{"mediaType" => "image/jpeg", "name" => "", "type" => "Image", "url" => [%{"href" => "https://pedo.house/media/b9694c525674050809f3b61b091d0069eab44addd6e7eeaacbd21fcf31e98d12.jpg", "mediaType" => "image/jpeg", "type" => "Link"}]}, local: true, blocked_users: #Ecto.Association.NotLoaded<association :blocked_users is not loaded>, id: "A8ryb138vzLBBMPUno", password_hash: "$pbkdf2-sha512$160000$[redacted]", pinned_activities: [], note_count: 140, is_confirmed: true, registrations: #Ecto.Association.NotLoaded<association :registrations is not loaded>, skip_thread_containment: false, deliveries: #Ecto.Association.NotLoaded<association :deliveries is not loaded>, no_rich_text: false, subscriber_subscriptions: #Ecto.Association.NotLoaded<association :subscriber_subscriptions is not loaded>, fields: [...], ...}}}
Jul 08 22:57:08 pedo.house bash[16482]: 22:57:08.008 [error] Elixir.Pleroma.Web.MastodonAPI.SearchController search error: %CaseClauseError{term: {"", %Pleroma.User{subscriber_users: #Ecto.Association.NotLoaded<association :subscriber_users is not loaded>, domain_blocks: [], show_role: false, is_moderator: false, confirmation_token: nil, multi_factor_authentication_settings: %Pleroma.MFA.Settings{backup_codes: [], enabled: false, totp: nil}, is_discoverable: false, blocker_users: #Ecto.Association.NotLoaded<association :blocker_users is not loaded>, mascot: nil, follower_count: 70, name: "Kay Faraday", inserted_at: ~N[2021-07-02 06:18:16], muter_users: #Ecto.Association.NotLoaded<association :muter_users is not loaded>, last_refreshed_at: nil, following_address: nil, outgoing_relationships: #Ecto.Association.NotLoaded<association :outgoing_relationships is not loaded>, is_active: true, follower_address: "https://pedo.house/users/KayFaraday/followers", mastofe_settings: %{"columns" => [%{"id" => "COMPOSE", "params" => %{}, "uuid" => "de2e3350-5071-4120-a4a7-4790bcc06325"}, %{"id" => "HOME", "params" => %{}, "uuid" => "c34ea366-3099-4d6e-bed3-135b85a4d525"}, %{"id" => "NOTIFICATIONS", "params" => %{}, "uuid" => "7a2177d5-7f91-4524-b7fd-ffe6fb26a924"}], "community" => %{"regex" => %{"body" => ""}}, "direct" => %{"conversations" => true, "regex" => %{"body" => ""}}, "home" => %{"regex" => %{"body" => ""}, "shows" => %{"direct" => true, "reblog" => true, "reply" => true}}, "layout" => "auto", "notifications" => %{"alerts" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}, "quickFilter" => %{"active" => "all", "advanced" => false, "show" => true}, "shows" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}, "sounds" => %{"favourite" => true, "follow" => true, "follow_request" => false, "mention" => true, "poll" => true, "reblog" => true}}, "onboarded" => true, "public" => %{"regex" => %{"body" => ""}}, "skinTone" => 1, "trends" => %{"show" => true}}, muted_notifications: [], last_active_at: ~N[2021-07-08 07:15:11], notification_muter_mutes: #Ecto.Association.NotLoaded<association :notification_muter_mutes is not loaded>, bio: "Hi there! I'm Kay, 'kay? I'm the successor to the name of Yatagarasu, a former loli, and now a Pleroma admin!", is_locked: false, reblog_muter_mutes: #Ecto.Association.NotLoaded<association :reblog_muter_mutes is not loaded>, hide_favorites: true, actor_type: "Person", reblog_mutee_mutes: #Ecto.Association.NotLoaded<association :reblog_mutee_mutes is not loaded>, muted_reblogs: [], muted_users: #Ecto.Association.NotLoaded<association :muted_users is not loaded>, hide_follows_count: false, password_confirmation: nil, is_admin: true, avatar: %{"mediaType" => "image/jpeg", "name" => "", "type" => "Image", "url" => [%{"href" => "https://pedo.house/media/b9694c525674050809f3b61b091d0069eab44addd6e7eeaacbd21fcf31e98d12.jpg", "mediaType" => "image/jpeg", "type" => "Link"}]}, local: true, blocked_users: #Ecto.Association.NotLoaded<association :blocked_users is not loaded>, id: "A8ryb138vzLBBMPUno", password_hash: "$pbkdf2-sha512$160000$[redacted]", pinned_activities: [], note_count: 140, is_confirmed: true, registrations: #Ecto.Association.NotLoaded<association :registrations is not loaded>, skip_thread_containment: false, deliveries: #Ecto.Association.NotLoaded<association :deliveries is not loaded>, no_rich_text: false, subscriber_subscriptions: #Ecto.Association.NotLoaded<association :subscriber_subscriptions is not loaded>, fields: [...], ...}}}
Jul 08 22:57:08 pedo.house bash[16482]: 22:57:08.014 request_id=Fo_y3oMNedk0gYkANiCx [info] Sent 200 in 16ms
```
This happens regardless of using RUM indices.https://git.pleroma.social/pleroma/pleroma/-/issues/2702Conditional handling of http_security with Onion federation2023-05-08T01:20:14ZAlex GleasonConditional handling of http_security with Onion federationRelated: pleroma/pleroma-meta#58
It seems that Onion federation requires disabling the HTTPSecurityPlug which gives a big ascii warning banner when you start the server:
> HTTP Security is disabled. Please re-enable it to prevent users...Related: pleroma/pleroma-meta#58
It seems that Onion federation requires disabling the HTTPSecurityPlug which gives a big ascii warning banner when you start the server:
> HTTP Security is disabled. Please re-enable it to prevent users from attacking
your instance and your users via malicious posts
When enabled, it would normally add these headers:
```elixir
headers = [
{"x-xss-protection", "1; mode=block"},
{"x-permitted-cross-domain-policies", "none"},
{"x-frame-options", "DENY"},
{"x-content-type-options", "nosniff"},
{"referrer-policy", referrer_policy},
{"x-download-options", "noopen"},
{"content-security-policy", csp_string()},
{"permissions-policy", "interest-cohort=()"}
]
```
and:
```elixir
merge_resp_headers(conn, [
{"strict-transport-security", "max-age=#{max_age_sts}; includeSubDomains"},
{"expect-ct", "enforce, max-age=#{max_age_ct}"}
])
```
This is nothing that can't just be added to the clearnet Nginx config, but surely there's a way to detect if the user is connected over Tor and disable it conditionally? As it stands, adding Onion support requires downgrading your clearnet config.https://git.pleroma.social/pleroma/pleroma/-/issues/2700Proper LDAP local authentication database fallback and password sync2023-05-08T01:52:42ZSean KingProper LDAP local authentication database fallback and password syncWhile the current solution is fine, there should be proper fallback mechanisms in case the LDAP server is not available.While the current solution is fine, there should be proper fallback mechanisms in case the LDAP server is not available.https://git.pleroma.social/pleroma/pleroma/-/issues/2698Request for a particular account's statuses yields error2023-05-08T01:53:58ZNEETzscheRequest for a particular account's statuses yields errorWhen I try to request a particular account's statuses, it throws a 502 Bad Gateway Error. Restarting Pleroma did fix it, but what could cause that to be required?
The logs don't appear to show anything in relation to this beyond acknowl...When I try to request a particular account's statuses, it throws a 502 Bad Gateway Error. Restarting Pleroma did fix it, but what could cause that to be required?
The logs don't appear to show anything in relation to this beyond acknowledging an incoming request. What could cause this?https://git.pleroma.social/pleroma/pleroma/-/issues/2697Request: Option for Quarantine to not send public posts to quarantined instances2023-05-08T01:43:37ZerisRequest: Option for Quarantine to not send public posts to quarantined instancesCurrently the behavior of Quarantine checks if the post is public and then, if not, applies the quarantine code: https://git.pleroma.social/pleroma/pleroma/-/blob/develop/lib/pleroma/web/activity_pub/publisher.ex#L107
In my experience t...Currently the behavior of Quarantine checks if the post is public and then, if not, applies the quarantine code: https://git.pleroma.social/pleroma/pleroma/-/blob/develop/lib/pleroma/web/activity_pub/publisher.ex#L107
In my experience this behavior is misleading for what the "Quarantine" option should actually be, and this is exploited by instances with large-scale harassment campaigns to invade and hellthread a post from an instance that blocks them. I assume I don't need to elaborate on that further as I'm sure the instances guilty of this will come to this thread to make themselves known anyway.
An option as to whether the Quarantine will still send out public posts or not would suffice to fix this.
This isn't meant to affect "muh open federation", but to prioritize safety and security when people have made it known that it's necessary and put that decision making in the hands of the admin.
Thank youhttps://git.pleroma.social/pleroma/pleroma/-/issues/2696No indication that approval emails require welcome emails to be enabled2023-05-08T01:53:34ZioNo indication that approval emails require welcome emails to be enabledIt's not clear at all that after someone's account is approved, they are sent a welcome email and not a special approval email. The Admin FE setting that controls whether registration is approval-based should also point to the setting th...It's not clear at all that after someone's account is approved, they are sent a welcome email and not a special approval email. The Admin FE setting that controls whether registration is approval-based should also point to the setting that enables welcome emails.