Bridge Pro v4.34.1-beta — per-device BPUP push starvation + occasional full BPUP stream stalls (zero errors logged)

Hi all — filed this with support, who asked me to bring it to the forum for the engineering/product team. I’ve been collecting evidence for about a week with the beta deliberately kept installed. Two distinct failure signatures.

Setup

  • Bridge: Bond Bridge Pro (zermatt-pro-a), ID ZPGAIJ78296, firmware v4.34.1-beta (fw_date Jun 17), wired Ethernet, static IP, flat LAN (no VLANs)
  • Devices: 4 MagnaTrack RF units — Office SunShade (RMS98), Kitchen SunShade (RMS98), Dining Room Awning (RMS5), Awning Light
  • BPUP client: Home Assistant Core 2026.6.4 (official bond integration). Two Bond app users exist but apps are normally closed — single effective BPUP subscriber.

Signature A — per-device push starvation (frequent: 4–15/device/day)

The bridge stops pushing BPUP state for one device for ~2 push cycles (~15–20 s) while pushing the other three normally in the same cycles. The client’s per-entity availability timeout trips; the next push (~1 s later) restores it. No errors, timeouts, or exceptions logged anywhere — the stream just goes quiet for one device.

Representative client-side capture (2026-06-28):

05:58:48  push: Dining, Kitchen, Office, Awning Light   (all four)
05:58:58  push: Kitchen, Dining, Office                 (Awning Light MISSED)
05:59:08  push: Office, Dining                          (Awning Light still missing)
05:59:08  Awning Light -> unavailable (client availability timeout)
05:59:09  Awning Light -> available   (next push arrived)

All four devices are affected, every day. Occasionally two devices starve in the same cycles (e.g. both SunShades at 2026-06-30 01:24:42 while Dining Awning + Awning Light kept pushing).

Signature B — full BPUP stream stall (rarer)

The entire BPUP stream stalls; the client’s keepalive gives up, tears down the UDP transport, reconnects and re-discovers. All four devices drop simultaneously.

Three verified events: 6/30 13:48:21, 6/30 16:17:34, 7/1 22:32:34 (PDT).

Methodology note: I screened every candidate event against six non-Bond devices on the same LAN and my hub’s MQTT connection log, and discarded any event within ±10 minutes of a Home Assistant restart — the three above are clean (client up, MQTT session connected throughout, no other device blipped).

Client log for the 7/1 22:32:34 event:

22:32:29  push: Dining, Office, Awning Light            (normal cycle)
22:32:34  all 4 devices -> unavailable
22:32:35  [bond_async.bpup] BPUP connection stopping
22:32:35  version re-query: {'target': 'zermatt-pro-a', 'fw_ver': 'v4.34.1-beta', ...}
22:32:36  full device rediscovery (reconnect)

Ruled out

Wired bridge; no VLANs; no network changes during the observation window; non-Bond devices show zero availability blips at event times; no commands in flight (events hit at idle hours like 01:24 and 05:59); apps closed, so no client contention.

Impact

Not cosmetic: my wind/weather protective retract automations must refuse to act on unavailable/optimistic state, so a flap that coincides with a retract trigger silently skips the retract — a real problem for motorized awnings in gusts.

Happy to help

I have precise timestamps for dozens of events and can correlate with anything bridge-side. Glad to enable diagnostics, ship extended logs, stay on beta, or run test builds.

Bridge ID ZPGAIJ78296 · account pupEdog@gmail.com

1 Like

Thanks for the report, Tom. Understood that the main issue is certain devices missing from the BPUP stream despite other devices and keepalives working. Will check into it. :thinking:

1 Like

Bond flapping — follow-up data (July 2 – July 6)

Continuation of my earlier report (Bridge ZPGAIJ78296, firmware v4.34.1-beta, wired Ethernet, 192.168.0.136, Home Assistant as effectively the sole client). Same two signatures, four more days of data. Monitoring window: July 2 12:00 PDT → July 6 09:30 PDT (~3.9 days).

Method note

After my earlier correction (six events I initially reported turned out to coincide with Home Assistant restarts), every bridge-wide candidate below was cross-checked against four non-Bond integrations (weather station, mmWave sensor, pool monitor, template sensor). If any of them dropped within ±5 minutes of a Bond event, the event was excluded as possible host-side activity. 13 candidates were excluded this way — the 10 below survived the filter: Bond devices dropped while every other integration on the host stayed up.

Signature B — bridge-wide stream stalls: 10 verified events

All Bond devices drop simultaneously (within 2.5 s), then recover:

Date/time (PDT) Devices dropped
Jul 2, 23:08:48 4 of 4
Jul 3, 03:30:15 2
Jul 3, 11:29:45 2
Jul 3, 12:14:25 2
Jul 3, 17:19:24 4 of 4
Jul 3, 21:25:49 3
Jul 4, 01:11:43 2
Jul 4, 04:32:47 4 of 4
Jul 5, 17:41:36 2
Jul 5, 22:47:54 4 of 4

Rate ≈ 2.6/day. No diurnal pattern — events span 01:11 to 23:08. No correlation with device commands (most occur overnight with no activity).

Direct log capture of the Jul 5 22:47 event (debug logging on bond_async; last host restart was 16:47 that day, six hours prior):

2026-07-05 22:47:54.928 DEBUG [bond_async.bpup] BPUP connection stopping: <_SelectorDatagramTransport fd=56 read=polling write=<idle, bufsize=0>>
2026-07-05 22:47:56.106 DEBUG [homeassistant.components.bond.utils] Discovered Bond devices: [{'device_id': '21fef54d141e3cfb', ...

The BPUP stream stops, the integration reconnects and re-runs discovery ~1.2 s later. Consistent with the stalls in my original report.

Signature A — single-device push starvation: 26 events

One device’s BPUP updates stop for ~15–20 s while the other three keep updating normally through the gap (so the stream itself is alive). Per-device counts over the window:

Device Events
kitchen_sunshade_2 11
dining_room_awning 7
awning_light 6
office_sunshade 2

Rate ≈ 6.7/day. Sample from the evening of Jul 5 (each with no BPUP connection stopping line — the stream stayed up, one device’s pushes just went missing):

2026-07-05 20:53:39.309 WARNING [homeassistant.components.bond.entity] Entity cover.kitchen_sunshade_2 has become unavailable
2026-07-05 21:07:19.309 WARNING [homeassistant.components.bond.entity] Entity cover.dining_room_awning has become unavailable
2026-07-05 22:35:50.308 WARNING [homeassistant.components.bond.entity] Entity light.awning_light has become unavailable

Notes

  • Bridge remains on v4.34.1-beta — I’ve held off downgrading to stable so the data stays comparable; happy to downgrade (or flash anything you’d like) now that you have this window captured.
  • Full timestamp lists, raw debug logs, and recorder exports available on request.
  • Practical impact reminder: after each blip, covers restore an optimistic open, which suppresses my weather-protection retract automations — this is why I’m chasing it.

Hi Tom, the state information is only being pushed when it changes. Are you expecting something that pushes every few seconds?

No — no expectation of periodic state pushes. Change-only push is fine and isn’t what the report is measuring. Two mechanics matter here, both from the client source:

  1. Keep-alive: the HA integration (bond-async) sends the BPUP keep-alive datagram every 60 s and treats push mode as alive if any datagram — a keep-alive acknowledgment counts — arrives within 70 s (BPUP_ALIVE_TIMEOUT = 70). No state changes required.

  2. HTTP fallback: when nothing is heard for 70 s, HA falls back to polling GET /v2/devices/{device_id}/state every 10 s per device. The “Entity … has become unavailable” warnings in my logs are generated in exactly one place — when that HTTP request raises a timeout/client error (entity.py, _async_update_from_api). BPUP silence alone never marks a device unavailable.

So each event I reported implies two things happened together: the bridge stopped acknowledging keep-alives long enough to kill push mode, and then its local HTTP API failed to answer state requests. The single-device events are one device’s state GET timing out while the other three answered within the same seconds; the bridge-wide events are all four failing at once — the latter also coinciding with the UDP transport being torn down and the integration re-running discovery (the BPUP connection stopping capture at 22:47:54 on Jul 5).

Happy to capture anything more targeted — packet capture on 30007, specific firmware build, whatever helps.

2 Likes