# Id is already in use

#### What is the "id" and why must it be unique? <a href="#what-is-the-id-and-why-must-it-be-unique" id="what-is-the-id-and-why-must-it-be-unique"></a>

All clients are identified by an id. During the client installation, the id is written to the `rport.conf` file. This id can be any string. Operating system create a worldwide unique id for each system during the installation process.

The rport pairing script takes the id of the operating system and inserts it to the `rport.conf` file.

On Linux the id is taken from `/etc/machine-id` or a hash of all mac addresses is created, if the machine-id file is missing.

On Windows the computer system UUID is used. `Get-CimInstance -Class Win32_ComputerSystemProduct).UUID`

Re-using existing identifiers creates a consistent view of your inventory. But you can use other identifiers if you want.

![id of the rport client](https://1142160776-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MekeI9EovpQqbUTQSdM%2Fuploads%2F2tUk3PTLpuxHZ13k4mGE%2Fimage.png?alt=media\&token=40d40c6a-e166-40bb-94dd-01da2f65249e)

#### What causes duplicate ids? <a href="#what-causes-duplicate-ids" id="what-causes-duplicate-ids"></a>

Duplicate ids are almost always caused by system cloning. Either you have cloned a system with the rport client already installed, or after cloning, you have not created a new machine-id.

You will get an error like the below in the `rport.log`.

`client: Connection error: client id "1234abc" is already in use`

☝️ The problem is largely limited to Linux because Windows identifies it has been cloned, and a new UUID is created automatically.

You can edit the `rport.conf` with an editor and insert a [randomly created UUID](https://www.uuidgenerator.net/). Restart the client and it will connect flawlessly.

Having systems with duplicate machine-ids on a local network is not a good idea. It can cause other issues. First reset the machine id of the operating system, reboot and copy the new id from `/etc/machine-id` and insert it into the `rport.conf`.

{% hint style="info" %}
Starting with rport 0.6.0 the client can dynamically read the systemd id on start. That eliminates the need of copying `/etc/machine-id` to `rport.conf`. But it doesn't liberate you from the duty of creating unique machine ids on your network.
{% endhint %}
