RCT Power: Parallel thread requests cause TCP stack freeze
Environment
- **openWB version:**2.2.1
- Inverter: RCT Power Storage DC 6.0
- Firmware: 2.3.5689
- Connection: LAN, TCP Port 8899
Problem description
When the RCT Power BMS reports a non-zero battery status (e.g. during cell balancing), openWB generates WARNING log entries from multiple threads in parallel. These parallel requests hit the RCT inverter's TCP stack simultaneously, causing it to freeze. After the freeze, no TCP client (openWB, RCT Power App) can receive data anymore, even though port 8899 still accepts connections. Only a full cold restart of the inverter resolves the issue.
Log evidence
The following log excerpt shows three threads firing within 16ms on the same TCP connection:
https://paste.openwb.de/S7SyQ2ok9c635cP
Additionally, requests come from different threads (device0, component2, MainThread) within the same second:
2026-06-24 11:59:12,715 - {ERROR:device0}
2026-06-24 11:59:13,325 - {ERROR:component2}
2026-06-24 11:59:14,747 - {ERROR:MainThread}
Root cause
BMS status values of 1024 (0x0400, Bit 10 = balancing active) and 3072 (0x0C00, Bit 10+11) are normal operating states, not actual errors. However, openWB treats any non-zero status as a fault condition and triggers repeated parallel queries from multiple threads. The RCT inverter's TCP stack is not designed for concurrent connections and freezes under this load.
Expected behavior
- Battery status bits should be decoded properly; balancing-related bits should not trigger fault handling
- All RCT module threads should share a single TCP session or coordinate access to avoid parallel requests
Workaround
Full cold restart of the inverter (AC off → DC off → BMS off → wait 5 min → restart in reverse order), followed by openWB restart to establish a fresh TCP session.
RCT Power: Parallel thread requests cause TCP stack freeze
Environment
Problem description
When the RCT Power BMS reports a non-zero battery status (e.g. during cell balancing), openWB generates WARNING log entries from multiple threads in parallel. These parallel requests hit the RCT inverter's TCP stack simultaneously, causing it to freeze. After the freeze, no TCP client (openWB, RCT Power App) can receive data anymore, even though port 8899 still accepts connections. Only a full cold restart of the inverter resolves the issue.
Log evidence
The following log excerpt shows three threads firing within 16ms on the same TCP connection:
Additionally, requests come from different threads (device0, component2, MainThread) within the same second:
Root cause
BMS status values of 1024 (0x0400, Bit 10 = balancing active) and 3072 (0x0C00, Bit 10+11) are normal operating states, not actual errors. However, openWB treats any non-zero status as a fault condition and triggers repeated parallel queries from multiple threads. The RCT inverter's TCP stack is not designed for concurrent connections and freezes under this load.
Expected behavior
Workaround
Full cold restart of the inverter (AC off → DC off → BMS off → wait 5 min → restart in reverse order), followed by openWB restart to establish a fresh TCP session.