Search Unity

Official Stuck on Windows? Check here first! ("Unity is already in list" etc)

Discussion in 'Unity Hub' started by BasilUnity, Jun 2, 2020.

Thread Status:
Not open for further replies.
  1. BasilUnity

    BasilUnity

    Unity Technologies

    Joined:
    Mar 28, 2018
    Posts:
    93
    What's happening?

    Currently, some of our Windows users who have disabled network adapters (including some VPN configurations) are experiencing issues with creating or opening projects via Unity Hub. This post offers the official suggested workarounds until a proper fix is available.

    Okay, but what's REALLY going on here?

    This section dives deeper into the functionality of licensing in Unity Hub and Unity Editor. Feel free to skip ahead to the solutions if you don't find this particularly interesting.

    When your Unity license is issued to you, it is bound to a number of hardware identifiers on your machine. One of those identifiers is the MAC address of your primary network adapter. We prioritise the onboard adapter above else, as it can't be easily disconnected. If that onboard adapter is disabled, Unity will assume that your machine is not the one the license was originally issued to, resulting in a licensing error.

    Unity licensing exists in both Unity Hub and Unity Editor. Given that the Hub is updated and released frequently, the licensing module in that application will always be the newest revision. In Unity Hub 2.3.2, the licensing module is smarter: rather than simply detecting the primary network interface, it also looks at active network interfaces. Unfortunately, at the time of writing, this code is not yet available in any of the Unity Editors.

    There is a small utility that is shipped with Unity Hub, which can list the system's network adapters in the order Unity Licensing detects them:

    Code (CSharp):
    1. "C:\Program Files\Unity Hub\resources\app.asar.unpacked\node_modules\@unityhub\unity-editor-license\build\Release\nativetest.exe" -v
    Alternatively, you can run the following in PowerShell:
    Code (CSharp):
    1. Get-WMIObject MSFT_NetAdapter -Namespace root\StandardCimv2 | select Name,InterfaceDescription,InterfaceOperationalStatus,ConnectorPresent,PermanentAddress,NetworkAddresses,PNPDeviceID
    So what do I do now?

    First, let's collect all the relevant logs. On Windows, the logs are located here:
    • Licensing logs: %LOCALAPPDATA%\Unity\Unity.Licensing.Client.log
    • Editor logs: %LOCALAPPDATA%\Unity\Editor\Editor.log
    • Hub logs: %APPDATA%\UnityHub\logs\info-log.json
    If you open these files, here's what the licensing error looks like:
    • Licensing logs: The following fields of your context don't match: Legacy.MachineBinding5: License value () != Current context ()
    • Editor logs: No valid Unity Editor license found. Please activate your license.
    • Hub logs: {"moduleName":"LicenseFSM","level":"info","message":"[ 'initializing --> licenseInvalid' ]","timestamp":"2020-05-05T23:47:39.464Z"}

    Second, let's list the network interfaces available on the computer. You can always use the standard Windows ipconfig /all but the nativetest utility and PowerShell commands mentioned in the previous section are even better!

    Solution A: Managing Network Interfaces in Windows

    This solution involves re-enabling disabled network interfaces at the OS level.

    The license file created by the flow in Unity Hub is %PROGRAMDATA%\Unity\Unity_lic.ulf . If you open that file in any text editor, you can see which network interface it is assigned to. The MAC address of the network interface will be listed under under <Binding Key="5" Value=""/>

    Compare the value listed for Binding Key="5" with your list of network interfaces. In Windows, navigate to Control Panel > Network and Sharing Centre > Change adapter settings. Locate the network interface matching the Unity license file and enable it.

    For best results, close all Unity applications and services before opening your project via Unity Hub again.

    Solution B: Defaulting to Latest Licensing Client

    This solution leverages the Unity Licensing Client bundled with the latest Unity Editor.

    First, download the latest Unity Editor available to you (e.g., 2020.1) via Unity Hub. Once the installation finishes, keep Unity Hub open and launch the Licensing Client from that version. By default, you can find it here, although the install location can vary: C:\\Program Files\\Unity\\Editor\\2020.1.0b2\\Editor\\Data\\Resources\\Licensing\\Client\\Unity.Licensing.Client.exe

    You can check Task Manager and look for Unity.Licensing.Client.exe to make sure it is running. If the process is there, try opening your project via Unity Hub again.

    If this solution works, we can create a small configuration file that will automatically launch the right Licensing Client alongside Unity Hub.
    1. Quit Unity Hub
    2. Using the template below, create a new file in %PROGRAMDATA%\Unity\config\ and name it services-config.json
    3. Make sure that the path on the last line corresponds to the location of your Unity Editor 2020.1 (or newer)
    4. Launch Unity Hub
    5. Create or open a project via Unity Hub
    Code (CSharp):
    1. {
    2. "enableEntitlementLicensing": true,
    3. "enableFloatingApi": true,
    4. "licenseClientApplicationPath": "C:\\Program Files\\Unity\\Editor\\2020.1.0b2\\Editor\\Data\\Resources\\Licensing\\Client\\Unity.Licensing.Client.exe"
    5. }
    Solution C: Offline Activation

    It is possible to work around the problem using the offline licensing activation flow. Officially, we'd suggest trying either of the two previously mentioned solutions instead. This said, the offline activation method was posted in a couple of threads already. If you require assistance, please contact Unity support and they will guide you through the process.

    NOTE: The information published here is designed to replace the old licensing troubleshooting thread
     
    Last edited: Jun 2, 2020
Thread Status:
Not open for further replies.