Agent reference: Common issues

August 19, 2026 · View on GitHub

Deep subsystem reference for AI assistants. Symptom → where-to-check index. Hard rules live in AGENTS.md.

SymptomWhere to check
Connection failsConnectionDriver, useProtocolConnection.ts, runtime/useMeshtasticRuntime.ts, runtime/useMeshcoreRuntime.ts
Empty chat/nodes offlinehydrateIdentityStoresFromDb, connect-time cache in runtimes, useDbRefresh; identity split — troubleshooting
Chat stuck / badge moves, no new rowsidentityByProtocol, useActiveMeshIdentity, mergeOfflineIdentityStore; Export for GitHubtroubleshooting
BLE timeoutnoble-ble-manager.ts, bleConnectErrors
Reticulum sidecar won't startreticulum-sidecar-manager.ts, ipc/reticulum-handlers.ts, troubleshooting
Nomad hosting enabled but not servingnomadServingApi.ts, reticulum-sidecar/src/stack/nomad_server.rs / nomad_content_source.rs, [nomad-serving] logs, nomadPageErrorHumanize.tstroubleshooting
Reticulum interface CRUD failsReticulumInterfacesPanel.tsx / ReticulumStackPanel.tsx, proxyPut/proxyDeletetroubleshooting
Reticulum Remote transfer / inbound policyRemoteTransferSection.tsx / RemoteSettingsSection.tsx, rncpTransferStore.ts / reticulumInboundPolicyStore.ts, pushRncpListenerPolicy.tstroubleshooting
Reticulum LXST voice fails / silentreticulumVoiceSession.ts, reticulumVoiceStore.ts, sidecar voice_session.rs; troubleshooting
Reticulum LXMF hangs with Auto + LAN hubsidecar auto_path_policy.rs / lxmf_outbound.rs; troubleshooting
Reticulum public hub TCP fast-flap blockreticulumStackSessionTracker.ts (five stack starts in 12h), ReticulumLocalInterfaceAlertsBlock.tsx (tcp_fast_flap / unreachable hint), reticulumTcpInterfaceRecovery.ts; troubleshooting
PN Sync PATH_UNKNOWN / stuck retrieve busyPROPAGATION_PATH_UNKNOWN gate in live.rs; Cancel → abort_transfer overlay; Host silent /get latch ownership; troubleshooting
Auto picks a bad Discovered PNNetwork → Propagation Ignore for Auto (propagation_auto_blacklist); filters Auto sync + deposit only
Proxy IPC storm after wakeuseReticulumInterfaceSnapshot must not refresh on announce.received; shared proxy rate-limit soft envelope
Serial port auto-rediscoveryserialPortAutoRediscovery.ts (60 s window, 5 s poll) — troubleshooting
Meshtastic MQTT text on wrong channel tabmqtt-manager.ts (resolveMqttInboundTextChannelIndex), debug snapshot meshtastic.channelPills / channelConfigsSummary / mqttChannelKeyEntryCounttroubleshooting
Chat export failschat:export handler in src/main/index.ts
Support export failssupport:exportBundle in src/main/support-bundle.ts; App tab Export for GitHub / Export for Developer
Draft not restoredchatPanelProtocolStorage.ts, viewKey logic
MeshCore send blocked (message too long)chatComposerLimits.ts (getMaxChunks = 1, splitChatMessagenull, overMaxSingle), ChatComposer.tsx — single-packet, no outbound [i/N] split; also gates room posts (getMeshcoreRoomPayloadLimit). See chat.md, parity
MeshCore "sending too fast" advisorymeshcoreSendRateNotice.ts (recordMeshcoreSend / isMeshcoreSendTooFast, MESHCORE_FAST_SEND_WARN_INTERVAL_MS), ChatComposer.tsx; non-blocking role="status", clock also fed by GIF / share-location / outbox drain (useChatOutbox.ts)
Mention picker missingMentionAutocomplete.tsx, buildMentionCandidates
Link preview missingfetchLinkPreview.ts, chat:fetchLinkPreview IPC; also check direct-image extension/MIME, YouTube oEmbed, and magic-byte sniff failures; previews always fetch (including while reading history)
Duplicate RF+MQTT msgmeshtasticMessageDedup.ts, Meshtastic runtime ingest
MeshCore duplicate/echomeshcoreStoreDedup.ts, useMeshcoreRuntime.ts
Room login/post failsmeshcoreRoomLoginRpc.ts, meshcoreRoomPostRpc.ts, troubleshooting
Rooms unread vs ChatmeshcoreRoomsUnread.ts — Rooms tab badge only; orphan room SQL filtered by known Room contacts; contact delete cascades room messages (deleteMeshcoreContactOn); tombstones in meshcoreLocallyDeletedContacts.ts
MQTT decrypt / sendermqtt-manager.ts, meshtasticMqttIdentity.ts
Remote admin failsmeshtasticRemoteAdmin.ts, key storage
S&F history garbledmeshtasticBacklogUtils.ts decode, heartbeat trigger
Garbled TEXT_MESSAGEmeshtasticBacklogUtils.ts readable-text filter
Channel URL applymeshtasticChannelApply.ts, meshtasticUrlEncoder.ts
Header red on lossconnectionHeaderStatus.ts, mqttDisconnectIntent.ts
Sleep/wake reconnectusePowerRecovery, systemPowerState, bleReconnectHelper, rfReconnectHelper, runtimes; Meshtastic ~4s + MeshCore ~8s stagger + up to 30s dual-Noble settle
MeshCore contact prunemeshcoreContactAgeCutoff.ts, database.ts (last_advert seconds); favorited exempt
MQTT transient after wakesrc/shared/networkTransientErrors.ts, mqtt:powerSuspend / mqtt:powerResume IPC
MeshCore ping no route / primingmeshcoreTraceRoutePrime.ts, meshcoreHookPreamble.ts, meshcore.errors.pingNoRoute; troubleshooting
Repeater CLI danger / auto-pingmeshcoreRepeaterCliDanger.ts, RepeatersPanel.tsx (ensureCliRoutePrimed); repeatersPanel.cliMultiHopHint
Room vs repeater LoginFailmeshcoreRoomLoginRpc.ts (fail fast) vs meshcoreRepeaterLoginRpc.ts + meshcoreRepeaterPrefixPushRpc.ts (wait for LoginSuccess)
Renderer hung after wakerendererHeartbeatWatchdog.ts, useRendererHeartbeat; visible stall + export mainLiveness; troubleshooting — quit fully if no [usePowerRecovery] after resume watchdog
MeshCore TCP mid-init peer FINuseMeshcoreRuntime initConn / meshcore:tcp-*; troubleshooting
Chat hop pills missingMeshCore: meshcoreCompanionRxPathLenToHopCount / MeshCoreProtocol / meshcoreRawPacketCorrelate / meshcoreIngest; Meshtastic: meshtasticRfHops.ts (viaMqtt / hopStart===0 omit by design)
Meshtastic SDK routing console noisemeshtasticSdkRoutingErrorConsoleHook.ts, meshtasticSdkRoutingErrorLog.ts; late Packet does not exist swallow is post-teardown only (armMeshtasticLateConfigureRetryableSwallow / rendererUnhandledRejection.ts) — do not widen to full session
All Meshtastic nodes show online after BLE connect/configurenodeStore.ts configure replay guards, meshtasticConfigurePhase.ts, meshtasticLastHeard.ts; meshtastic.md