it looks like that a message from homeserver A got federated to homeserver B without appearing in the room, which then federated it to homeserver C (that has the bridges)
but... first of all how? second why?
How do you know that it didn't get federated directly from A to C? (Even if it did, it would still be a very weird failure mode.)
@robryk i find it unlikely because A is a new homeserver and C is something i run for the exclusive purpose of bridging, but i might also not entirely understand how it works
i can check the logs
I wonder what happens if A keeps changing its mind about what its signing keys are.
My very wild hypothesis is that for some reason B doesn't consider these messages (I forgot Matrix's term for nodes-in-the-room-history-dag) valid. Perhaps A changed its mind about its signing key? But I don't know why B haven't fetched them from C, trusting them because C considers them valid. I will need to reread how validity determination works, but now I need to sleep, so it has to wait until tomorrow. (I realized I don't get how you can at the same time prevent C from potentially impersonating A's users and at the same time accept nodes from C that mention a node from A that appears invalid as a parent.)
@robryk B got the message 20 minutes later
If you are still curious about the mechanism of the weirdness: Can you tell how? (Did it get pushed to it? Did it fetch it? From A or from C?)
@robryk it's on matrix.org so i don't have a way to find out
@robryk i guess i could check if C pushed it if i had any idea what to grep for
@robryk looks like you're right, homeserver A joining the room caused homeserver C to talk to it directly