home-assistant/core · error · ConfigEntryError
setup_general_error
setup_general_error
Error message
An unknown error occurred while retrieving static device data
What it means
Catch-all raised during bsblan setup when the static-data fetch raises a generic BSBLANError that is not a connection, auth, timeout, or version problem. It is raised as ConfigEntryError with translation key `setup_general_error`, a terminal failure state (no automatic retry), so the user must intervene. It usually indicates malformed API responses or unexpected library-level failures.
Source
Thrown at homeassistant/components/bsblan/__init__.py:225
except TimeoutError as err:
raise ConfigEntryNotReady(
translation_domain=DOMAIN,
translation_key="setup_connection_error",
translation_placeholders={"host": entry.data[CONF_HOST]},
) from err
except BSBLANVersionError as err:
# The device does not report a supported JSON-API version, so the
# integration cannot operate. Surface a clear, actionable error.
firmware_version = bsblan.device_info.version if bsblan.device_info else None
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="setup_outdated_firmware",
translation_placeholders={
"firmware_version": firmware_version or "unknown"
},
) from err
except BSBLANError as err:
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="setup_general_error",
) from err
# Devices below JSON-API v2 operate with a reduced single-circuit feature
# set. Surface (or clear) the repair issue recommending a firmware upgrade.
_async_manage_outdated_firmware_issue(
hass, entry, device.version, bsblan.json_api_version
)
# Fetch static values per configured circuit.
# BSB-LAN is a serial bus — it processes one parameter at a time,
# so concurrent requests offer no speed benefit over sequential.
# Static values are optional — some devices may not support them.
static_per_circuit: dict[int, StaticState | None] = {}
for circuit in circuits:
try:
static_per_circuit[circuit] = await bsblan.static_values(circuit=circuit)View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Open `http://<host>/JQ` and `http://<host>/JI` in a browser and confirm valid JSON comes back.
- Reboot the BSB-LAN device (power cycle the board) to clear wedged state, then reload the entry.
- Update both BSB-LAN firmware and Home Assistant so client and device API versions match.
- Enable debug logging for bsblan and file an issue with the traceback if JSON looks valid.
Defensive patterns
Strategy: try-catch
Validate before calling
# verify the endpoints return real JSON before setup curl -s "http://<host>/JI" | python3 -m json.tool > /dev/null && echo ok
Try / catch
if entry.state is ConfigEntryState.SETUP_ERROR:
# inspect the setup error and device manually; ConfigEntryError does not retry
... Prevention
- Don't point the integration at hosts behind proxies/captive portals.
- Reboot the device after firmware flashes before reloading the entry.
- Keep firmware and Home Assistant versions aligned.
When it happens
Trigger: Loading a bsblan entry where `bsblan.device()` or `bsblan.info()` parses a malformed JSON payload, hits an unexpected HTTP status, or any other BSBLANError subclass not caught by earlier handlers.
Common situations: A proxy or captive portal returning HTML instead of JSON at the configured host, corrupted device responses, partial firmware flashes, or python-bsblan/library and firmware API mismatches.
Related errors
- setup_connection_error
- setup_auth_error
- setup_outdated_firmware
- Key data not returned from device
- Unknown error
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/bc23718d44a7f461.
Report an issue: GitHub.