Solution
This means that the client is connected and able to run jobs from the server but the actual HTTP(S) connection info that got pushed from the server side to the client is in a bad state. Try the following suggestions:
- Check the configured hostname field in the SystemLink Client dialog. The best practice is to always use the (full) preferred hostname.
- The preferred hostname must be reachable/resolvable by the client.
- You can check this in DOS with ping hostname.
- Use the same hostname as entered in the NI Web Server Configuration dialog. This can be found in the Remote tab, in the “Preferred host name” field.
- Check the web certificate shown on the server’s NI Web Server Configuration dialog. This is only relevant for HTTPS communication, if you are using HTTP skip this suggestion.
- Go to the “HTTPS” tab, then click the “View certificate” button, and verify that:
- The “Issued to” field is the same hostname used on the client system.
- The “Valid from” field shows the certificate has not expired.
- Check the HTTP(S) connection info stored on the client system:
- For a Windows client it can be found in C:\ProgramData\National Instruments\Skyline\HttpConfigurations\http_master.json
- For a Linux Real-time client it can be found in /etc/natinst/niskyline/HttpConfigurations/http_master.json
- The “Uri” field should match the address/port of the server.
- The "ApiKey" should be a valid string and not null.
- Test the HTTP(S) info using a DOS curl command (simulating a GET web request), by running:
- curl -i ${Uri}/niauth/v1/auth -H "Content-Type: application/json" -H x-ni-api-key:$ApiKey
- This either returns a valid JSON string or throws an error:
- A valid JSON string means that the issue is the reporting client state.
- The client state should be fixed in the next 30 minutes because SystemLink runs a beacon to update the state.
- Restarting “NI Salt-Minion” service forces state update.
- An error means the HTTP(S) info is the problem:
- Unauthorized error points to a stale ApiKey.
- Unreachable error points to failed Uri path.
- To regenerate these values on the server and push new data to the client:
- Move the client system to a new Workspace.
- Remove / Re-approve SystemLink client (this loses client info, including alias, jobs and proporties).
- If the http_master.json file cannot be found in the client, make sure the server has enough resources and is not being constrained by CPU or RAM usage. A lack of resources can cause the server to not initiate the refresh job that triggers the creation of this configuration file in the client.