Can't delete a device

Hello, one of my devices died, so I’m trying to delete it from my other syncthing installations. I can’t though, because the button is greyed out and when I go over it with the mouse a popup message says “This device will be reintroduced by Machine-1”. I have checked the configuration on “Machine-1” and the “introducer” option was infact selected, so I deselected it, I rebooted both machines but it still won’t let me delete the device. Any solutions? Thanks

Read the tooltip, it might be introduced by some other machine now.

No, it keeps saying “This device will be reintroduced by Machine-1”. :open_mouth:

1 Like

Can you post your config somewhere? You did restart and refresh the browser right? Did you doublecheck that introducer is unset?

Which config would you like me to post? I have refreshed many times, it won’t change the message. :frowning: Introducer is unset, I have Machine-1 right in front of me.

1 Like

Config.xml

What machine did you deselect the introducer option on? What machine are you trying to remove the node from?

I only had the option selected on Machine-1, all the other nodes don’t have the option enabled. I am trying to remove the node from the machine I have at my workplace (Machine-1 is at home instead).

@AudriusButkevicius: I meant which machine do you want me to post the config from? Machine-1 or the other one?

Thanks

The one where you are being prevented to remove the device.

Ok, I will post it on Monday. I won’t have access to that machine until then. Thanks

Ok, then… following @AudriusButkevicius advice I simply checked the config.xml file of the machine where I was being prevented to remove the dead device. I’ve found out that the line where the dead device was listed had the “IntroducedBy” option that specified Machine-1’s key as the introducer (even though I had already removed the “introducer” flag on that machine). I’ve edited the configuration file by hand then, and removed Machine-1’s key leaving the “IntroducedBy” option blank. After restarting syncthing I was able to eventually remove the dead machine. It’s probably not the right way to do it, but it worked.

I suspect you were removing the introducer flag on the wrong side? As otherwise introducedBy has no meaning if the device is no longer an introducer. Or atleast that is the intention:

$scope.willBeReintroducedBy = undefined;
if (deviceCfg.introducedBy) {
    var introducerDevice = $scope.findDevice(deviceCfg.introducedBy);
    if (introducerDevice && introducerDevice.introducer) {
        $scope.willBeReintroducedBy = $scope.deviceName(introducerDevice);
    }
}

I removed the introducer flag on Machine-1. Isn’t that the right machine where I had to do that?

No. I want to remove A, A was introduced by B, B knows A, and locally B is an introducer, which means at the moment I remove A locally, it will be reintroduced by B. The fact that B removes me as an introducer on his side has no effect to my local decisions to adopt the nodes he advertises to me.

Honestly I don’t understand. Then which machine should I have deselected the introducer option from?

The introducer feature takes effect locally: So to locally remove a device R1 introduced by R2 you need to locally deselect the introducer option on R2 before locally removing R1. The introducer settings on the remote machines themselves are not relevant for this.

Ok, but follow me. For simplicity’s sake I’ll use your Rx numbering scheme.

I had R1 which was set as introducer for other nodes. I had R2 which is the dead machine I had to remove from the list. I had R3 which is the machine I wanted to remove R2 from.

Could you please write the correct procedure one should follow in order to remove R2 from R3?

Well there is two ways depending on what you actually want to do. If you only want to remove R2 from R3 do:

  1. Go to the UI of R3
  2. Under “Remote Devices” select R1 and click on the edit button.
  3. Remove the tick on “Introducer” and save.
  4. Select R2 -> edit -> Remove.

On rereading, the following might be more confusing than helpful - you were warned: If you want to remove R2 entirely from your cluster, i.e. all devices, and/or keep the introducer, you need to determine your “top level introducer”. If only one device was ever set as introducer on all devices, than it is that one (e.g. in your case R1). You may have nested (R1 introducer on R2, R2 introducer on R3: top level R1) or cyclic introducers (R1 on R2, R2 on R3, R3 on R1). In the later case there is no “top level introducer” and you need to break the cycle to get a “top level introducer”. Then you start removing R2 on the “top level” and proceed removing it towards “lower levels”.

1 Like

OK, many thanks. The first part of your reply was exactly what I needed. I restored the old config file, tried your solution and in fact it worked perfectly. Editing the config.xml file worked too, but yours is much easier. :slight_smile: Thank you very much.

P.S.: the second part of the reply was actually confusing, but thanks for taking the time to explain this to me.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.