mirror of
https://github.com/meshcore-dev/meshcore_py.git
synced 2026-04-20 22:13:49 +00:00
Why: handle_rx is invoked from a detached task in MessageReader, so any exception escaping its ~850-line if/elif dispatch is silently swallowed by asyncio as "Task exception was never retrieved." The only crash guard previously was a single try/except IndexError around the first byte read; everything past line 73 was unguarded. This commit adds an umbrella try: ... except Exception as e: around the entire dispatch body that logs the exception class, message, raw frame hex, and full traceback via logger.error. The umbrella neutralizes the crash surface of F10, F11, N07, N08, R01, NEW-B, and NEW-C, which the next commits will then fix individually now that they are observable. Refs: Forensics report finding F06 (umbrella crash protection) |
||
|---|---|---|
| .. | ||
| commands | ||
| __init__.py | ||
| ble_cx.py | ||
| connection_manager.py | ||
| events.py | ||
| lpp_json_encoder.py | ||
| meshcore.py | ||
| meshcore_parser.py | ||
| packets.py | ||
| parsing.py | ||
| reader.py | ||
| serial_cx.py | ||
| tcp_cx.py | ||