Introducer flag not respected

Perhaps I don’t understand how Syncthing is supposed to work but here is what I think is a bug:

What Happened I’ve been introducing several people to Syncthing in the past week (7 in total) and helping them get it installed on Windows (mostly just putting it in their startup folder so it runs on startup). After getting it installed I’ve been grabbing their device Id and adding it on my machine and sharing a few folders with them. They accept my device (without checking the “introducer” checkbox) and then, as soon as they accept any folder I’ve shared which is already shared with another machine, they instantly have several new remote devices added to their machine. These devices are ones my machine new about that had the same shared folders.

What I expected to happen

At the very least, they should get a prompt to add the remote devices. Ideally they would NOT get a prompt and would NOT have these devices auto-added as they did not have my machine as a “introducer”.

Thoughts?

The only way anything gets auto-added is if you are marked as an introducer, so either you are introducer via some other device somewhere, or there is a bug. Please double check with your friends, ask them to provide their configs to verify that indeed nobody is marked as introducer.

If that is all clear, please provide step by step instructions how to reproduce on a new isolated environment.

I’m basing this report on my latest install with my friend:

I have confirmed my device is not marked as an “introducer” on my friend’s machine. We followed these steps:

  1. Downloaded Syncthing on Windows (x64 I believe)
  2. Ran with the --no-console flag
  3. He adds my device via the device Id. Did not check “Introducer” during the flow (some time passed and I did not get his request - my device was marked as “unused” - so I performed the following step
  4. I added his device via the add remote device flow by device Id. I share two folders with him. Some of the devices this folder is shared with are marked as “introducers” on my machine.
  5. He got my remote device connect request and accepted it
  6. He got my two folder share requests and accepted them. One folder was shared with just his device and mine and the other folder was shared between his device, my device, and remove devices A, B, & C.
  7. A new device (device A from above) appears in his “Remote Devices”. Neither B or C show up. I have A, B, & C marked as introducers on my device.

Other info:

  • I have devices A, B, & C marked as introducers on my device
  • It is possible that A, B, or C has me marked as an introducer. I can investigate if needed.

Does that give you enough information?

If A has you marked you as an introducer, then A started connecting to your friend as you started advertising your friend to A. It’s possible your friend just pressed accept without realising what he was accepting.

If you can come up with exact steps that you execute in a completely new isolated environment and reproduce this, then I’d take these, verify that I see the same results and debug whats happening.

Having ideological steps of what you guys think you did is not super useful, as it doesn’t mean it can be reproduced.

I will try to reproduce when I have some time. What I don’t understand is why would my friend even get an introduction from my machine if I wasn’t checked as an introducer?

Alternately, could it be possible that A has been marked as an introducer (I’m working on verifying) and then when I added my friend on the shared folder my machine told A which then, because I was an introducer for A, automatically added my friend’s machine? Is that how it works? If so, I will see if my friend remembers accepting the request.

Thanks for the help

Yes, if A has you marked as introducer, as you added your friend, A immediately added him too, and started connecting to him, which caused your friend to see a prompt: A wants to connect with you, add?

I confirmed with my friend that he did get a request from A which he accepted so I think we can close this as “working as intended”.

That being said I still think it’s confusing. Even though my friend had my machine not marked as an “introducer” my machine did psuedo-introduce my friend to machine A. It would be more clear (imo) if there was line of text next to the “Accept remote connection” prompt that indicated how the connection came to be initiated. It could be either “Manual” which would indicate a manual entry of user’s device Id or "Introduced by " which would indicate which remote connection “told” the new connection about you.

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