A couple days ago, I got a DM from a #Bonfire user.
-
A couple days ago, I got a DM from a #Bonfire user. I happily replied and sent
a follow request—but theAcceptnever came back, even though they hadn't
enabledmanuallyApprovesFollowers. My DM reply probably never arrived either. Classic interop bug.I checked out the Bonfire source and dug in. Turns out Bonfire hasn't implemented RFC 9421 yet, so it was silently discarding any activity signed with it. That alone would be workable, except for one more issue: Bonfire was responding
200 OKeven when signature verification failed, instead of401 Unauthorized.This matters because Fedify implements a double-knocking mechanism—if a request signed with RFC 9421 fails, it retries with the older draft cavage signature. But since Bonfire returned
200 OKon the failed first knock, #Fedify had no reason to send a second one.I filed two issues on the Bonfire #ActivityPub repo—one requesting RFC 9421 support, and one about returning
401on invalid signatures. For the latter, I also sent a PR, which got merged pretty quickly: bonfire-networks/activity_pub#9.That said, individual Bonfire instances won't pick up the fix until they actually deploy it. So in the meantime, I patched Hollo and Hackers' Pub to use
draft-cavage-http-signatures-12as thefirstKnock, so Bonfire instances can at least understand the first request.One last thing: Fedify caches whether a given server supports RFC 9421, and the Bonfire servers I'd already talked to were cached as “supports RFC 9421”—because they'd been returning
200 OK. I had to manually clear that cache on both hollo.social and hackers.pub before everything finally worked.After all that, the mutual follow went through and my DM reply landed. Worth it.
#fedidev #fediverse #Hollo #HackersPub
-
@hongminhee not all heroes wear capes... thank you for your phenomenal work!!!
-
@hongminhee not all heroes wear capes... thank you for your phenomenal work!!!