Skip to content

Config tab: Unmessageable checkbox always shows unchecked for local node; map has no unmessageable indicator #3684

Description

@Yeraze

Description

The Unmessageable checkbox in the Node Identity section of the Configuration tab always appears unchecked, even when the flag is set on the device. The official Meshtastic web client correctly shows this flag as enabled.

There are two separate bugs here:

Bug 1 — Checkbox always shows unchecked for local node

File: src/server/server.ts, /admin/load-owner endpoint (~line 5079)

When loading owner info for the local node, isUnmessagable and isLicensed are hardcoded to false instead of being read from the device:

return res.json({ owner: {
  longName: localNodeInfo.longName || '',
  shortName: localNodeInfo.shortName || '',
  isUnmessagable: false,   // ← hardcoded, never reads actual device value
  isLicensed: false,        // ← same
  publicKey: publicKeyBase64
}});

Remote nodes correctly use requestRemoteOwner() which actually queries the device via the admin channel. Local nodes skip this and always return false.

Fix: Issue an admin getOwner request for the local node (same as remote) and return the actual values, or at minimum read isUnmessagable / isLicensed from localNodeInfo once those fields are populated from NodeInfo packets.

Bug 2 — Map does not visually distinguish unmessageable nodes

Even if the flag were correctly read, isUnmessagable is not plumbed into the map display layer. The official webclient uses this flag (from the User protobuf in NodeInfo) to style the node's map icon as infrastructure. MeshMonitor has no equivalent styling.

Steps to Reproduce

  1. Enable Unmessageable on your node via the official Meshtastic app or web client
  2. Open MeshMonitor → Configuration tab → Node Identity section
  3. The checkbox shows unchecked regardless of actual device state
  4. Node appears on map with no visual indicator of unmessageable/infrastructure status

Expected Behavior

  • Checkbox reflects actual device state when the page loads
  • Map shows a distinct icon/marker for nodes with isUnmessagable = true

Version

v4.11.5

Reported by

NullVoid (Discord)


Authored by NodeZero 0️⃣

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions