matrix-org / matrix-appservice-irc

Node.js IRC bridge for Matrix
Apache License 2.0
462 stars 151 forks source link

Failing to unlink room #1580

Open warpfork opened 2 years ago

warpfork commented 2 years ago

Describe the bug

I receive the (somewhat infamous?) "Failed to unlink room. Check the logs for details." message upon using the !unlink command.

I think that the logs it refers to must be on the server hosting the bridge, which is out of my reach :) This is on the bridge to libera.chat.

To Reproduce

I'm issuing a command to the @appservice:libera.chat bot of the form: !unlink !{{matrix_room_internalID}}:libera.chat irc.libera.chat #{{irc_room_name}}

(Not sure if relevant, but previously, I had issued several other variants of the command. First, some which didn't guess the syntax correctly, and received errors like "The server provided is not configured on this bridge" -- I will assume these previous incorrect incantations didn't have a stateful effect that leads to the current problem. Later, I tried some incantation variants which used the matrix room alias rather than the room's internal ID -- these also received "Failed to unlink room. Check the log for details." I think those are also a different problem -- but that error message is really unhelpful; I have no idea.)

Expected behavior

Unlinking the room would be ideal :)

Additional context

The bigger-picture reason I want to unlink this room is so that I can freeze the room's current history. I've made a new room in Matrix and configured the IRC bridge there in a more satisfactory way, and want to move on using that. (The current room was created on IRC first -- which results in not being able to get Admin in Matrix's POV! -- and the new room, having been created in Matrix first, leaves me with Admin capabilities.)

Having both rooms remain bridged makes a bit of a mess. It makes it impossible for me to just save the history of the old room: conversation in the new room appears in the old room via the bridging, and vice-versa. Ideally, I'd probably want to go further and delete/archive the old room, and have a tombstone redirecting to the new room.

Or, all of this could be avoided (e.g. I wouldn't be interested in unlinking at all) if I could just become Admin in the room, which is my real goal -- and in turn is my goal simply because it would let me adjust the history settings in Matrix! But alas, I've given up on that already, after some inquiry in #libera-matrix.

Related issues

warpfork commented 1 year ago

Is there someone I can get in contact about this, even if it's to resolve it as a manual one-off intervention on the hosted matrix-dot-org bridge instance?

I just tried to pursue the unlinking myself again today, and it still doesn't work, and tells me to "check the logs", which I understand to be something only the bridge server administrator can do.

warpfork commented 1 year ago

This is creating massive and active pain for me. Over time, I've realized it's much worse than my original goal of just stopping messages from being replicated unnecessarily into the room I wanted to deprecate.

This situation where we have the room bridged multiple times, one of them where the IRC side thinks it "owns" things, seems to be causing the bridge to kick matrix-native users when they don't have a message that replicates to IRC after one month.

This is super, super, super painful. I now have several personal DM histories where people send me screenshots of their matrix client telling them they've been kicked from the room. The first time it happens, they're usually amused. The second and further time it happens, it is not so funny. It's painful to me, it's painful to them, and as this makes the IRC bridge overall worse-than-useless (actively hemmoraging my community? absolutely worse than useless), it's a very bad look for Matrix overall as a place that we can try to organize open-source communities. ;(

warpfork commented 1 year ago

Update log: I've been unable to find any way to remedy or engage with this at all other than to ... give up completely. I've manually made new rooms for the rooms affected, manually invited affected people into them, and just marked the old rooms as unsalvagable. This is the third set of rooms I've ended up making to try to understand and wrangle the integration with IRC. The history of the old rooms will, I guess, just float on out there, and there's not much I can do for the continuity of it. Because this has been so disruptive, and there is so little remedy available for either the initial problem, nor anything to do to reduce the brunt of the friction in moving away from the problem, I will also based on this experience probably never try the IRC bridging again, nor could I in good faith recommend anyone else attempt it. (I'm sorry; I don't know what else to say.)

warpfork commented 1 year ago

For any possible future debugging, I'll attach some screenshots of states encountered.

During my milder attempts to interact with this (before giving up any making new rooms entirely), I also found that the control system for integrations didn't seem to know what was going on all with the (second) room: bridgejoy1 bridgejoy2

I can only guess that there's serious architectural issues at play here in the bridge's figuring of what the "source of truth" is.