Skip to content

rpi_power AttributeError 'NoneType' object has no attribute 'get' causes Core SIGSEGV on startup (Python 3.14, x86 hardware) #169714

@macleodal

Description

@macleodal

The problem

On Home Assistant OS 17.2 / Core 2026.4.4 / Python 3.14 running on x86_64 hardware (not a Raspberry Pi), the rpi_power integration throws an AttributeError on startup, and on at least one occasion this correlated with a hard segmentation fault (SIGSEGV / signal 11) that killed Home Assistant Core.

The AttributeError itself appears to be longstanding — see #113700 (March 2024) where the same value = self._under_voltage.get()AttributeError: 'NoneType' object has no attribute 'get' traceback appears in logs.

What appears to be new under Python 3.14 is that this error sequence ended Core hard with signal 11, requiring manual core start from the supervisor CLI to recover.

Sequence of events

  1. Restarted Home Assistant manually via the UI (Settings → System → Restart).
  2. Core failed to come back up. Frontend unreachable.
  3. On the host console, observed:
    • Python traceback in rpi_power/binary_sensor.py line 53
    • [INFO] Home Assistant Core finish process exit code 256
    • [INFO] Home Assistant Core finish process received signal 11
    • s6 cleanly stopped legacy services
  4. Manually ran core start from the ha > CLI prompt. Core came up cleanly on this second attempt.
  5. The recovery startup again produced the AttributeError but did not segfault.

Reproducibility

Non-deterministic. The same configuration produces the AttributeError on every startup but only occasionally produces the SIGSEGV. Suggests a timing-dependent or race-condition-dependent path between the AttributeError and the underlying C library state.

Why is rpi_power even loaded on x86 hardware?

The integration was originally added when running HA on a Raspberry Pi 5. After migration to x86_64 hardware several months ago, the config entry persisted in the registry and the integration continued to load on every startup despite there being no Pi power management interface for it to talk to. I don't know whether this is auto-discovery behaviour or just a stale config entry surviving migration, but either way, the integration probably should not auto-load (or should fail-soft, not crash) when the underlying kernel interface returns nothing.

I have now manually deleted the config entry, which mitigates the issue for me.

Suggested fixes (developer's call)

  • rpi_power should detect that _under_voltage is None and either skip the update or unload itself gracefully, rather than dereferencing it.
  • The integration should refuse to load (or auto-uninstall) on non-Pi hardware, particularly after migration from Pi to x86.

What version of Home Assistant Core has the issue?

2026.4.4

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

rpi_power

Link to integration documentation on our website

https://www.home-assistant.io/integrations/rpi_power/

Diagnostics information

Integration does not provide diagnostics.

Example YAML snippet

N/A

Anything in the logs that might be useful for us?

2026-05-03 19:44:45.897 ERROR (MainThread) [homeassistant.components.binary_sensor] rpi_power: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 811, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1365, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.14/concurrent/futures/thread.py", line 86, in run
    result = ctx.run(self.task)
  File "/usr/local/lib/python3.14/concurrent/futures/thread.py", line 73, in run
    return fn(*args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/components/rpi_power/binary_sensor.py", line 53, in update
    value = self._under_voltage.get()
            ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

Additional information

Hardware: x86_64 mini PC (Shuttle DL30N), generic-x86-64 machine type
Supervisor: 2026.04.2
HAOS: 17.2
Frontend: 20260325.8
Python: 3.14 (per the traceback)

Cross-reference: #113700

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions