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
- Enable Unmessageable on your node via the official Meshtastic app or web client
- Open MeshMonitor → Configuration tab → Node Identity section
- The checkbox shows unchecked regardless of actual device state
- 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️⃣
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-ownerendpoint (~line 5079)When loading owner info for the local node,
isUnmessagableandisLicensedare hardcoded tofalseinstead of being read from the device:Remote nodes correctly use
requestRemoteOwner()which actually queries the device via the admin channel. Local nodes skip this and always returnfalse.Fix: Issue an admin
getOwnerrequest for the local node (same as remote) and return the actual values, or at minimum readisUnmessagable/isLicensedfromlocalNodeInfoonce those fields are populated from NodeInfo packets.Bug 2 — Map does not visually distinguish unmessageable nodes
Even if the flag were correctly read,
isUnmessagableis not plumbed into the map display layer. The official webclient uses this flag (from theUserprotobuf in NodeInfo) to style the node's map icon as infrastructure. MeshMonitor has no equivalent styling.Steps to Reproduce
Expected Behavior
isUnmessagable = trueVersion
v4.11.5
Reported by
NullVoid (Discord)
Authored by NodeZero 0️⃣