Environment
- MeshMonitor version: 4.12.3 (Docker,
ghcr.io/yeraze/meshmonitor:latest)
- Deployment: Docker Compose on Ubuntu 24 VM (Proxmox), device passed through via USB
- MeshCore source: USB/Serial, device type Companion, firmware
v1.16.0-07a3ca9
- Hardware: Seeed XIAO nRF52840 (companion_radio_usb build)
- MeshCore mobile app:
meshcore-flutter
- Virtual Node: enabled, port 5000, connecting over LAN WiFi
Summary
Connecting the MeshCore mobile app to a MeshMonitor-managed MeshCore Virtual Node works for read operations and messaging (nodes/contacts visible, messages send fine), but any config-mutating action from the app (e.g. changing radio params, device settings) fails silently on the app side with no clear error.
Confirmed not a permissions issue
allowAdminCommands is set to true on the source config, confirmed via direct API query:
"virtualNode": {
"enabled": true,
"port": 5000,
"allowAdminCommands": true
}
Note: this field currently has no corresponding checkbox in the Edit Source dialog for MeshCore sources in the web UI — only Meshtastic TCP sources seem to render it. Had to PUT the full source object via a browser console fetch to set it, since PATCH isn't a supported method on /api/sources/{id} — only PUT. Might be worth a separate issue/PR for the missing UI control.
Logs
Every attempted config action produces repeated log lines like:
unhandled frame: code=142 [
142, 48, 206, 0, 146, 56, 51, 236, 114,
35, 200, 84, 213, 132, 9, 198, 239, 221,
...
]
This appears immediately after AppStart from mcvn-N (app "meshcore-flutter") → SelfInfo for "DJ_Meshcore_Base", and repeats for each attempted action. Messaging (send_msg etc.) works normally and produces no such warnings — this only happens for what appear to be config/admin frame types.
Expected behavior
Either the config command is forwarded to the physical node (per docs: "Enabling Allow admin commands forwards those configuration commands through to the real node"), or the app receives an explicit rejection/error it can surface to the user — rather than the request being silently dropped with only a server-side log entry.
Steps to reproduce
- Add a MeshCore source (USB, Companion) in MeshMonitor
- Enable Virtual Node, set
allowAdminCommands: true
- Connect the MeshCore mobile app to the VN over WiFi
- Attempt any settings change from the app (e.g. rename node, change radio params)
- Action fails/hangs in the app; server log shows
unhandled frame: code=142
Environment
ghcr.io/yeraze/meshmonitor:latest)v1.16.0-07a3ca9meshcore-flutterSummary
Connecting the MeshCore mobile app to a MeshMonitor-managed MeshCore Virtual Node works for read operations and messaging (nodes/contacts visible, messages send fine), but any config-mutating action from the app (e.g. changing radio params, device settings) fails silently on the app side with no clear error.
Confirmed not a permissions issue
allowAdminCommandsis set totrueon the source config, confirmed via direct API query:Note: this field currently has no corresponding checkbox in the Edit Source dialog for MeshCore sources in the web UI — only Meshtastic TCP sources seem to render it. Had to
PUTthe full source object via a browser console fetch to set it, sincePATCHisn't a supported method on/api/sources/{id}— onlyPUT. Might be worth a separate issue/PR for the missing UI control.Logs
Every attempted config action produces repeated log lines like:
unhandled frame: code=142 [
142, 48, 206, 0, 146, 56, 51, 236, 114,
35, 200, 84, 213, 132, 9, 198, 239, 221,
...
]
This appears immediately after
AppStart from mcvn-N (app "meshcore-flutter") → SelfInfo for "DJ_Meshcore_Base", and repeats for each attempted action. Messaging (send_msgetc.) works normally and produces no such warnings — this only happens for what appear to be config/admin frame types.Expected behavior
Either the config command is forwarded to the physical node (per docs: "Enabling Allow admin commands forwards those configuration commands through to the real node"), or the app receives an explicit rejection/error it can surface to the user — rather than the request being silently dropped with only a server-side log entry.
Steps to reproduce
allowAdminCommands: trueunhandled frame: code=142