Zum Hauptinhalt springen

Resolve Endpoint Conflicts in Level

Heute aktualisiert

Einführung

When you clone a device that already has the Level agent installed, both the original and the clone share the same agent ID. That causes a conflict — the two devices compete for the same entry in Level, and one or both will show erratic connectivity. This article shows how to rotate the agent ID on the cloned device to resolve it.

ℹ️ NOTE: This only affects cloned devices. Reinstalling the agent on an existing device does not change its ID — Level preserves the original ID through reinstalls to prevent duplicate entries.


Rotate the Agent ID Automatically

The fastest fix is the --new-agent-id flag. It generates a new UUID, updates the config, and restarts the agent in a single step.

Run this on the cloned device:

🖥️ PLATFORM NOTE:

  • Windows: & 'C:\Program Files\Level\level.exe' --new-agent-id

  • macOS: sudo /usr/local/bin/level --new-agent-id

  • Linux: sudo /usr/local/bin/level --new-agent-id

After the agent restarts, the cloned device will register as a new entry in Level. The original device is unaffected.

Rotate the Agent ID Manually

If you can't run the agent binary directly (e.g., the agent is stopped or the binary is inaccessible), you can edit the ID in the config directly.

⚠️ WARNING: Set the value to a valid UUID v4 (randomly generated). Don't reuse an ID from another device and don't leave the field blank. After editing, restart the Level service for the change to take effect.

🖥️ PLATFORM NOTE:

  • Windows — Registry key:

    • Path: HKEY_LOCAL_MACHINE\SOFTWARE\Level

    • Key name: AgentID

    • Change the value to a new UUID.

  • macOS — Config file:

    • Path: /Library/Application Support/Level/config.yaml

    • Key name: agent-id

    • Replace the existing value with a new UUID.

  • Linux — Config file:

    • Path: /etc/level/config.yaml

    • Key name: agent-id

    • Replace the existing value with a new UUID.

After editing, restart the Level service:

🖥️ PLATFORM NOTE:

  • Windows: Restart-Service -Name Level

  • macOS: sudo launchctl kickstart -k system/Level

  • Linux: systemctl restart Level

Preventing This in the Future

Two options for clone-based provisioning workflows:

Option 1 — Rotate the UUID post-clone (recommended): Keep the agent in your master image and run --new-agent-id as part of your post-clone provisioning step (via MDM, startup script, or RMM). Each cloned device gets a fresh ID automatically on first boot without any manual intervention.

Option 2 — Uninstall before imaging: Remove the Level agent before creating the master image, then install Level as a post-clone step. Each device gets a fresh agent ID from the install.

💡 TIP: The Level install guides for Windows, macOS, and Linux include silent install commands suitable for deployment scripts and MDM post-clone workflows.


Häufig gestellte Fragen

  • Which device should I run --new-agent-id on — the original or the clone? Run it on the clone. The original device has the "correct" ID that's already registered in Level. Rotating the clone's ID registers it as a new device without disturbing the original.

  • After rotating the ID, will the cloned device inherit the original's groups, tags, and custom fields? No. The cloned device registers as a brand new device in Level. You'll need to assign it to the appropriate groups and tags. Any custom field values from the original won't carry over.

  • Can I push --new-agent-id through Level if both devices are showing up intermittently? It's unreliable when two devices are competing for the same ID. Local access or another remote tool is safer. Once you've rotated the ID on the clone, both devices will have stable, separate connections.

  • How do I generate a valid UUID to use for a manual ID rotation? On Windows: [guid]::NewGuid().ToString() in PowerShell. On macOS/Linux: uuidgen. Either produces a valid UUID v4.

Hat dies deine Frage beantwortet?