Device_type not visible in hosted mender UI

Hello,

I am new to Mender (using a trial account) and am trying to configure a Mender client on an intel NUC. I have accepted the device in the hosted Mender UI and can see it in the UI dashboard. However, the device_type is not being populated in the UI, which I’m worried will prevent me from deploying a package to the device.

I have verified that the device_type file is set on the device:

➜  ~ cat /var/lib/mender/device_type 
device_type=nucx86

I can see in mender-updated debug logs that it has loaded this device_type and seems to be trying to send it to the cloud:

Oct 25 15:53:21 rsr4 mender-update[47579]: record_id=93 severity=debug time="2024-Oct-25 15:53:21.854576" name="Global" msg="deployments/next v2 payload {"device_provides":{"device_type":"nucx86","artifact_name":"unknown"}}"

But I don’t see device type in the inventory parameters in the UI:


(The custom inventory parameters in that screenshot are ones that I added in scripts under /usr/share/mender/inventory/, and these seem to be working fine.)

Let me know if any other details would be helpful. Thanks in advance for any advice!

Hi @percy,

Thanks for reaching out. The only situation where I know of such is in the overlapping time between device check in and inventory check in. Can you confirm this is a persistent state?

Greetz,
Josef

Hi Josef, thanks so much for your reply.

It seems that it is a persistent state. I also spun up a new linux VM and installed the Mender client and registered it with my hosted Mender account, and I’m seeing the same behavior: (1) the device has a device_type file and is logging the device_type field in the payload it is sending to the deployments/next endpoint, but (2) the UI is showing the device_type as empty. This has persisted for 7 minutes so far; should I expect to wait longer?

Device type file:

$ cat /var/lib/mender/device_type 
device_type=bmu-arm

Logs of the device sending the device_type in its checkin payload:

Oct 30 19:27:08 plinklinux mender-update[4556]: record_id=2290 severity=debug time="2024-Oct-30 19:27:08.851567" name="Global" msg="deployments/next v2 payload {"device_provides":{"device_type":"bmu-arm","artifact_name":"unknown"}}"
Oct 30 19:27:08 plinklinux mender-update[4556]: record_id=2291 severity=debug time="2024-Oct-30 19:27:08.852592" name="Global" msg="Got authentication token for server http://127.0.0.1:33889"
Oct 30 19:27:08 plinklinux mender-update[4556]: record_id=2292 severity=debug time="2024-Oct-30 19:27:08.852885" name="api_http_client" url="http://127.0.0.1:33889/api/devices/v2/deployments/device/deployments/next" msg="Hostname 127.0.0.1 resolved to [127.0.0.1]"
Oct 30 19:27:08 plinklinux mender-update[4556]: record_id=2293 severity=debug time="2024-Oct-30 19:27:08.853297" name="api_http_client" url="http://127.0.0.1:33889/api/devices/v2/deployments/device/deployments/next" msg="Connected to 127.0.0.1"
Oct 30 19:27:09 plinklinux mender-update[4556]: record_id=2294 severity=debug time="2024-Oct-30 19:27:09.664106" name="api_http_client" url="http://127.0.0.1:33889/api/devices/v2/deployments/device/deployments/next" msg="Received response: 204 No Content"

Empty device_type on the UI:

Other possibly relevant configs in /etc/mender/mender.conf:

{
    "HttpsClient": {},
    "Security": {},
    "Connectivity": {},
    "DeviceTypeFile": "/var/lib/mender/device_type",
    "UpdateControlMapExpirationTimeSeconds": 90,
    "UpdateControlMapBootExpirationTimeSeconds": 45,
    "UpdatePollIntervalSeconds": 5,
    "InventoryPollIntervalSeconds": 5,
    "RetryPollIntervalSeconds": 30,
    "TenantToken": "<redacted>",
    "Servers": [
        {
            "ServerURL": "https://hosted.mender.io"
        }
    ],
    "DaemonLogLevel": "debug"
}

I also wonder if it might have to do with the order in which I am setting up the device? This time I did the following:

  • Installed the mender client with apt (note that this dropped me into a configuration wizard that I had to terminate because I couldn’t use my google credentials to log in to hosted mender from the wizard – not sure if that matters?)
  • Followed these steps to configure the client: Installing | Mender documentation
  • Created a device identity file at /usr/share/mender/identity/mender-device-identity and made it executable
  • Verified that the device_type file existed at /var/lib/mender/device_type and contained the correct contents (“device_type=bmu-arm”)
  • Accepted the device in the mender UI

Did I do anything out of order?