[bug] Guppe Groups broken somewhere v3.14.0..v3.15.1 #901

Closed
opened 2025-04-10 22:12:35 +00:00 by beerriot · 2 comments
Contributor

Your setup

From source

Extra details

Ubuntu 22.04, kernel 5.15.0-105-generic, x86_64

Version

v3.15.2

PostgreSQL version

14.17

What were you trying to do?

I'm trying to use groups hosted at a.gup.pe. One account on my server has followed https://a.gup.pe/u/bookstodon for several months. Recently, I've been trying to follow https://a.gup.pe/u/openscadclub

What did you expect to happen?

After clicking the Follow button, the button should eventually change to "Unfollow", and I should see boosts from the group account on its profile on my server.

What actually happened?

The Follow button changes to "Request sent!", but never changes to "Unfollow". Boosts from the group never appear.

Additionally, for the group that someone had followed several months ago, the last boost that my server has seen from it happened minutes before I upgraded from Akkoma v3.14.0 to v3.15.1.

Logs

While running v3.15.1, my logs included these lines mentioning a.gup.pe:

```
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.336 request_id=GDUDUUINcw
4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo
n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}}            
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw
4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo
n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}}            
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw
4ETDcAlDbh [error] Failed to acquire key from signature: https://a.gup.pe/u/bo
okstodon {:error, "Could not fetch key"}                                      
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.375 request_id=GDUDUUINcw
4ETDcAlDbh [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/bookstodon not known   
...
Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.826 request_id=GDUDaRnweJ
jXLu0AlafS [error] Object rejected while fetching https://a.gup.pe/u/openscadc
lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}}        
Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.905 request_id=GDUDaRvXNL
CNcoAAlDkx [error] Object rejected while fetching https://a.gup.pe/u/openscadc
lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}}        
Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.919 request_id=GDUDaRnweJ
jXLu0AlafS [error] Object rejected while fetching https://a.gup.pe/u/openscadc
lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}}        
Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.919 request_id=GDUDaRnweJ
jXLu0AlafS [error] Failed to acquire key from signature: https://a.gup.pe/u/op
enscadclub {:error, "Could not fetch key"}                                    
Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.921 request_id=GDUDaRnweJ
jXLu0AlafS [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/openscadclub not known                                         
```

I wondered if this change might be related: https://akkoma.dev/AkkomaGang/akkoma/commit/70fe99d1967723edce96e8b842d88eb770c8628a. So I changed the `true` to `false` in line 284 of fetcher.ex, and bumped the log above it up to info level. After that, the logs changed to:

```
Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.098 request_id=GDUSqGLHcf
ds108AADdi [info] Fetching remote actor key https://a.gup.pe/u/bookstodon
Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.172 request_id=GDUSqGLHcf
ds108AADdi [info] Fetching remote actor key https://a.gup.pe/u/bookstodon
Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.248 request_id=GDUSqGLHcf
ds108AADdi [error] Failed to acquire key from signature: https://a.gup.pe/u/bo
okstodon {:error, #Ecto.Changeset<action: :insert, changes: %{public_key: "---
--BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5cnM53xEH
t8XXfNwpDwc\n5Daj15N3bvsY19f73LlIMrYjT/85tV5kbku9SggCy5EF9WgugKb8u3utkfxaG5aH\
nRf3ijJYrJtPgRFGXmpYW3eSVDz5ZAjMyDhPRRWL3LFcQW/ZbxAnpcbptjZtt4SXr\nso25xS5ikOt
zPJy8IQF4QpO4dNN2lNAvkEOgjC0FTPW1zqMveJxNk7aXuJQxAqgV\nAlui+0LCQnsv/GZ65Tepc66
PHqKD7/Fctk5cUiz7s0tEcCGfqaHsgA3Sm8hxv59k\npGrKgRP/SV0f7hlvsOL6tRCKsTrfwejSr5u
gyakaHU6+Fuihva5HdjncWDRboUq0\nG30Oxlw3IBoqDeo81KKEV/c/lD6x/rMie0dQuEpFeKy98rb
XUFIErk5NV9V9mG7W\nMaNGMqAahJkNFekuFTovmOh37iA5rF6LtPyWW7Xmrnb4DFDO7iGwQz3gb2t
NrXXY\n66yoyXObatPA6skipSOLezvgVY0sRb+D0w2UxEPxOfqD/bbdThSUs2Qcsvf9qNOz\ncj5tE
hyMNgag3foJkoAPdiJMSKQY4AQWiitkyFjISUjuhNTx7RkUaUb3D700dO1l\nbY61LjteVJcg7+lLg
C9yeU3xc8qGi5hC+7OtJlIl2BpUaxnJ6Dm1CDeItypvrJ+O\nlVKcxCnLlVebDy5O7cSNe9sCAwEAA
Q==\n-----END PUBLIC KEY-----\n", key_id: "https://a.gup.pe/u/bookstodon", use
r_id: "AX08djXDjct36s2vgW"}, errors: [user_id: {"has already been taken", [con
straint: :unique, constraint_name: "signing_keys_user_id_index"]}], data: #Ple
roma.User.SigningKey<>, valid?: false, ...>}
Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.249 request_id=GDUSqGLHcf
ds108AADdi [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/bookstodon not known

Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.500 request_id=GDUR9r_fm0
N7CNIAAB4x [info] Fetching remote actor key https://a.gup.pe/u/openscadclub   
Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.500 request_id=GDUR9rqbxe
us96AAAB4h [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/openscadclub not known                                         
Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.501 request_id=GDUR9rqbxe
us96AAAB4h [info] Fetching remote actor key https://a.gup.pe/u/openscadclub   
Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.610 request_id=GDUR9rqbxe
us96AAAB4h [error] Failed to acquire key from signature: https://a.gup.pe/u/op
enscadclub {:error, #Ecto.Changeset<action: :insert, changes: %{public_key: "-
----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoz8k3/i
dvmpcsyl2bjHm\ndmwhkq516q2shHZvk0U+Qd+eaRg/khVILKXGUxj0b9MYxtRprBw+WWA0SszFhAW
N\n9J86ow1coMilPa1/eGGN/iW9mgZUsSXTwNXNhEuJYLGB5sD83h5n2rSvLX1s7A4W\n5KL9dmixn
8xvTaiCi+JQcgOPciFP9+oX6xHeryTmk+FQqCB22cn8vGSxwLoL7Odz\nGOHR8f40+rmAn2VqQhJ1G
YvPi9AQ1xdbHy3wYuvy6bQTgmd+bWzAY37yK6gYswvD\nmHWgw8O+AMHyFqVAFZFmuJrnKzhrkK4GP
WmNr0Yl42YfWyinIrV+AlMsAwL+YAxW\n36RcCsevNQ/Q+ZcQ0VoedFnnHDV7MgCJWPM/jCeGauH/z
z7pRCWCbSGJaOHMD8Z1\nei0iDn923GBLymunUz4E84WELBKnBego8/pU0POITqJXxCs5zGzL1Zm0/
84bFPVx\nuAMtb1SiAZmhxmRwKcMlA36ryKvnzJjLVDEg8d9aPPDnvhUVy1JhoiV9CWlsO4kW\nl+e
Z7/aFXat38zPv1vhPvYXxLWUSlcvHrlIZocodmmYZ2K9mxpWgBQrQrofsVL//\nrjIEnOviJnZabas
0mAA3R/c0zf3AXYJvTLc2JuIRkvzZZSZKa4yq6/ZzAJQkUh4Z\ntCbAOlGHzPvfNPAhDmJKNrsCAwE
AAQ==\n-----END PUBLIC KEY-----\n", key_id: "https://a.gup.pe/u/openscadclub",
 user_id: "AskXLmbbWKGoHKcR8q"}, errors: [user_id: {"has already been taken", 
[constraint: :unique, constraint_name: "signing_keys_user_id_index"]}], data: 
#Pleroma.User.SigningKey<>, valid?: false, ...>}                              
Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.612 request_id=GDUR9rqbxe
us96AAAB4h [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/openscadclub not known                                         
```

I have since reverted that change, and upgraded to v3.15.2, and logs have returned to looking as they did before my change.

Severity

I cannot use it as easily as I'd like

Have you searched for this issue?

  • I have double-checked and have not found this issue mentioned anywhere.
### Your setup From source ### Extra details Ubuntu 22.04, kernel 5.15.0-105-generic, x86_64 ### Version v3.15.2 ### PostgreSQL version 14.17 ### What were you trying to do? I'm trying to use groups hosted at a.gup.pe. One account on my server has followed https://a.gup.pe/u/bookstodon for several months. Recently, I've been trying to follow https://a.gup.pe/u/openscadclub ### What did you expect to happen? After clicking the Follow button, the button should eventually change to "Unfollow", and I should see boosts from the group account on its profile on my server. ### What actually happened? The Follow button changes to "Request sent!", but never changes to "Unfollow". Boosts from the group never appear. Additionally, for the group that someone had followed several months ago, the last boost that my server has seen from it happened minutes before I upgraded from Akkoma v3.14.0 to v3.15.1. ### Logs ````shell While running v3.15.1, my logs included these lines mentioning a.gup.pe: ``` Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.336 request_id=GDUDUUINcw 4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}} Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw 4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}} Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw 4ETDcAlDbh [error] Failed to acquire key from signature: https://a.gup.pe/u/bo okstodon {:error, "Could not fetch key"} Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.375 request_id=GDUDUUINcw 4ETDcAlDbh [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/bookstodon not known ... Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.826 request_id=GDUDaRnweJ jXLu0AlafS [error] Object rejected while fetching https://a.gup.pe/u/openscadc lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}} Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.905 request_id=GDUDaRvXNL CNcoAAlDkx [error] Object rejected while fetching https://a.gup.pe/u/openscadc lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}} Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.919 request_id=GDUDaRnweJ jXLu0AlafS [error] Object rejected while fetching https://a.gup.pe/u/openscadc lub {:strict_id, {:error, "https://a.gup.pe/u/openscadclub#main-key"}} Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.919 request_id=GDUDaRnweJ jXLu0AlafS [error] Failed to acquire key from signature: https://a.gup.pe/u/op enscadclub {:error, "Could not fetch key"} Apr 10 16:56:20 localhost pleroma[2672530]: 16:56:20.921 request_id=GDUDaRnweJ jXLu0AlafS [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/openscadclub not known ``` I wondered if this change might be related: https://akkoma.dev/AkkomaGang/akkoma/commit/70fe99d1967723edce96e8b842d88eb770c8628a. So I changed the `true` to `false` in line 284 of fetcher.ex, and bumped the log above it up to info level. After that, the logs changed to: ``` Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.098 request_id=GDUSqGLHcf ds108AADdi [info] Fetching remote actor key https://a.gup.pe/u/bookstodon Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.172 request_id=GDUSqGLHcf ds108AADdi [info] Fetching remote actor key https://a.gup.pe/u/bookstodon Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.248 request_id=GDUSqGLHcf ds108AADdi [error] Failed to acquire key from signature: https://a.gup.pe/u/bo okstodon {:error, #Ecto.Changeset<action: :insert, changes: %{public_key: "--- --BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5cnM53xEH t8XXfNwpDwc\n5Daj15N3bvsY19f73LlIMrYjT/85tV5kbku9SggCy5EF9WgugKb8u3utkfxaG5aH\ nRf3ijJYrJtPgRFGXmpYW3eSVDz5ZAjMyDhPRRWL3LFcQW/ZbxAnpcbptjZtt4SXr\nso25xS5ikOt zPJy8IQF4QpO4dNN2lNAvkEOgjC0FTPW1zqMveJxNk7aXuJQxAqgV\nAlui+0LCQnsv/GZ65Tepc66 PHqKD7/Fctk5cUiz7s0tEcCGfqaHsgA3Sm8hxv59k\npGrKgRP/SV0f7hlvsOL6tRCKsTrfwejSr5u gyakaHU6+Fuihva5HdjncWDRboUq0\nG30Oxlw3IBoqDeo81KKEV/c/lD6x/rMie0dQuEpFeKy98rb XUFIErk5NV9V9mG7W\nMaNGMqAahJkNFekuFTovmOh37iA5rF6LtPyWW7Xmrnb4DFDO7iGwQz3gb2t NrXXY\n66yoyXObatPA6skipSOLezvgVY0sRb+D0w2UxEPxOfqD/bbdThSUs2Qcsvf9qNOz\ncj5tE hyMNgag3foJkoAPdiJMSKQY4AQWiitkyFjISUjuhNTx7RkUaUb3D700dO1l\nbY61LjteVJcg7+lLg C9yeU3xc8qGi5hC+7OtJlIl2BpUaxnJ6Dm1CDeItypvrJ+O\nlVKcxCnLlVebDy5O7cSNe9sCAwEAA Q==\n-----END PUBLIC KEY-----\n", key_id: "https://a.gup.pe/u/bookstodon", use r_id: "AX08djXDjct36s2vgW"}, errors: [user_id: {"has already been taken", [con straint: :unique, constraint_name: "signing_keys_user_id_index"]}], data: #Ple roma.User.SigningKey<>, valid?: false, ...>} Apr 10 21:35:45 localhost pleroma[3447159]: 21:35:45.249 request_id=GDUSqGLHcf ds108AADdi [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/bookstodon not known Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.500 request_id=GDUR9r_fm0 N7CNIAAB4x [info] Fetching remote actor key https://a.gup.pe/u/openscadclub Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.500 request_id=GDUR9rqbxe us96AAAB4h [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/openscadclub not known Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.501 request_id=GDUR9rqbxe us96AAAB4h [info] Fetching remote actor key https://a.gup.pe/u/openscadclub Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.610 request_id=GDUR9rqbxe us96AAAB4h [error] Failed to acquire key from signature: https://a.gup.pe/u/op enscadclub {:error, #Ecto.Changeset<action: :insert, changes: %{public_key: "- ----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoz8k3/i dvmpcsyl2bjHm\ndmwhkq516q2shHZvk0U+Qd+eaRg/khVILKXGUxj0b9MYxtRprBw+WWA0SszFhAW N\n9J86ow1coMilPa1/eGGN/iW9mgZUsSXTwNXNhEuJYLGB5sD83h5n2rSvLX1s7A4W\n5KL9dmixn 8xvTaiCi+JQcgOPciFP9+oX6xHeryTmk+FQqCB22cn8vGSxwLoL7Odz\nGOHR8f40+rmAn2VqQhJ1G YvPi9AQ1xdbHy3wYuvy6bQTgmd+bWzAY37yK6gYswvD\nmHWgw8O+AMHyFqVAFZFmuJrnKzhrkK4GP WmNr0Yl42YfWyinIrV+AlMsAwL+YAxW\n36RcCsevNQ/Q+ZcQ0VoedFnnHDV7MgCJWPM/jCeGauH/z z7pRCWCbSGJaOHMD8Z1\nei0iDn923GBLymunUz4E84WELBKnBego8/pU0POITqJXxCs5zGzL1Zm0/ 84bFPVx\nuAMtb1SiAZmhxmRwKcMlA36ryKvnzJjLVDEg8d9aPPDnvhUVy1JhoiV9CWlsO4kW\nl+e Z7/aFXat38zPv1vhPvYXxLWUSlcvHrlIZocodmmYZ2K9mxpWgBQrQrofsVL//\nrjIEnOviJnZabas 0mAA3R/c0zf3AXYJvTLc2JuIRkvzZZSZKa4yq6/ZzAJQkUh4Z\ntCbAOlGHzPvfNPAhDmJKNrsCAwE AAQ==\n-----END PUBLIC KEY-----\n", key_id: "https://a.gup.pe/u/openscadclub", user_id: "AskXLmbbWKGoHKcR8q"}, errors: [user_id: {"has already been taken", [constraint: :unique, constraint_name: "signing_keys_user_id_index"]}], data: #Pleroma.User.SigningKey<>, valid?: false, ...>} Apr 10 21:23:02 localhost pleroma[3447159]: 21:23:02.612 request_id=GDUR9rqbxe us96AAAB4h [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/openscadclub not known ``` I have since reverted that change, and upgraded to v3.15.2, and logs have returned to looking as they did before my change. ```` ### Severity I cannot use it as easily as I'd like ### Have you searched for this issue? - [x] I have double-checked and have not found this issue mentioned anywhere.
beerriot added the
bug
label 2025-04-10 22:12:35 +00:00
Owner
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw
4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo
n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}}            
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw
4ETDcAlDbh [error] Failed to acquire key from signature: https://a.gup.pe/u/bo
okstodon {:error, "Could not fetch key"}                                      
Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.375 request_id=GDUDUUINcw
4ETDcAlDbh [error] Failed to extract actor_id from signature: signing key http
s://a.gup.pe/u/bookstodon not known

This is a bug in whatever software a.gup.pe uses.
It identifies its key id as https://a.gup.pe/u/bookstodon in the signature, but then actually advertises the key as https://a.gup.pe/u/bookstodon#main-key in the AP object. Such bugs also break federation with other software (e.g. in the past bookwyrm failed to federate with GtS for such a reason). Please contact the developers of a.gup.pe’s software instead.

There is nothing to change on Akkoma’s end; our current behaviour is correct.

``` Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw 4ETDcAlDbh [error] Object rejected while fetching https://a.gup.pe/u/bookstodo n {:strict_id, {:error, "https://a.gup.pe/u/bookstodon#main-key"}} Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.373 request_id=GDUDUUINcw 4ETDcAlDbh [error] Failed to acquire key from signature: https://a.gup.pe/u/bo okstodon {:error, "Could not fetch key"} Apr 10 16:54:38 localhost pleroma[2672530]: 16:54:38.375 request_id=GDUDUUINcw 4ETDcAlDbh [error] Failed to extract actor_id from signature: signing key http s://a.gup.pe/u/bookstodon not known ``` This is a bug in whatever software a.gup.pe uses. It identifies its key id as `https://a.gup.pe/u/bookstodon` in the signature, but then actually advertises the key as `https://a.gup.pe/u/bookstodon#main-key` in the AP object. Such bugs also break federation with other software (e.g. in the past bookwyrm failed to federate with GtS for such a reason). Please contact the developers of a.gup.pe’s software instead. There is nothing to change on Akkoma’s end; our current behaviour is correct.
Author
Contributor

Thanks for the quick response, Oneric. I opened https://github.com/immers-space/guppe/issues/117 and will close this one.

Thanks for the quick response, Oneric. I opened https://github.com/immers-space/guppe/issues/117 and will close this one.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: AkkomaGang/akkoma#901
No description provided.