Home Assistant HomeKit Not Working? Separate Pairing from No Response

Separate missing bridges, failed pairing and unresponsive accessories. Check the entity, local network and bridge configuration before resetting HomeKit.

Check the entity inside Home Assistant first

The HomeKit Bridge exposes supported Home Assistant entities; first verify the entity works in Home Assistant. Open it there, operate it, and watch the state change.

Treat availability as a diagnostic precheck, not a rule about what can ever be exposed.

If it fails inside Home Assistant, stop there: the bridge cannot repair an entity Home Assistant cannot control. If it works, the fault is in the exposure path: the bridge, the local network, or the Apple side.

The four failure cases at a glance

What you see

What it points to

Check next

No bridge to add in the Home app

Discovery or the pairing surface

Local network, running bridge, current port and name

Bridge found, but pairing fails or hangs

Pairing state or one bad entity

Pairing code state, log, then the filter

All bridged accessories show No Response

Bridge transport or the Home hub

Logged interface, port, local path

One entity missing or never updating

Filter or unsupported domain

Filter, supported domains, accessory count

Read each row as a separate path; mixing them resets pairings unnecessarily.

Work the documented order

Put the Apple device on the same local network

The official HomeKit Bridge documentation says the iOS device must be on the same local network as Home Assistant. A phone on cellular, a guest network, or another VLAN can fail discovery before any setting matters.

Read the address line in the log

That section says to search the log for Starting accessory Home Assistant Bridge on address and confirm which interface is used. If not, the page documents ip_address.

A web UI that loads proves HTTP works, not local discovery or accessory transport.

Check the bridge identity

Each HomeKit Bridge instance needs its own port — 21063 is the documented default, and multiple instances need different values — plus a unique name on the same local network, 3 to 25 characters.

With more than one bridge, confirm which one you are pairing; a missing accessory may belong to the other.

Count accessories and review the filter

The HomeKit Accessory Protocol allows at most 150 unique accessories per bridge, so the documentation advises filters and splitting large installs.

Filters also explain single-entity problems: only supported domains can be exposed, and the filter decides what is included. Check both before blaming the pairing.

Match the configuration origin

A bridge created in the UI must be configured in the UI only, and a YAML bridge must be edited in YAML. Adding YAML next to a UI bridge creates another instance on a different port instead of changing the first, which explains many "the bridge runs but my change does nothing" reports.

Keep protocol background separate

If you arrived from a Zigbee vs Matter comparison, keep the two questions apart. That guide compares Zigbee's wireless mesh with Matter's application-layer interoperability standard, which can use Thread, Wi-Fi or Ethernet. HomeKit Bridge is a separate integration for exposing existing Home Assistant entities to Apple Home. Zigbee, Matter, Thread and this bridge are not synonyms.

What not to change first

Avoid broad router-wide changes. The documentation mentions IGMP settings and notes that defaults typically work best, so any such change belongs after the log line and port, as a narrow local rule you can undo.

External exposure is worse than a first move. The firewall notes and your deployment instructions describe the local traffic an instance needs; the port is whatever your bridge advertises, not a figure copied from another setup. Follow the current official instructions for your firewall or router model, keep any rule local, and never forward the port to the internet or switch off security wholesale.

Docker and virtualized installs have documented network requirements, including host networking for the documented Docker setup. Those settings change security and platform behavior, so follow your platform's deployment documentation rather than pasting a compose file from a thread; for Docker network isolation, the page documents advertise_ip with an mDNS forwarder.

Defer destructive options too. Deleting .storage, erasing Home app data, or unpairing everything discards names, rooms, scenes, and automations.

If pairing still fails, isolate before resetting

The documented path moves from logs to a temporary minimal configuration that tests whether one entity breaks pairing, then adds entities back. Do it only with a backup: the accessory can behave like a first-time setup, so names, rooms, scenes, and automations may need restoring. The demo.entity-style IDs on the page are documentation examples, not a working configuration.

The integration also documents reset, which returns an accessory to its first-time state, and unpair actions; both belong after evidence. Change one thing, restart, and repeat the test; a brief recovery after a reboot does not prove cause.

Record the evidence before you ask

Fill this in before posting. Leave a cell blank until you have a real observation.

Field

Your value

Home Assistant version and install type

Apple OS version and device

Symptom stage: missing bridge, pairing failure, all accessories, one entity

Does the entity work in Home Assistant?

Bridge configuration origin: UI or YAML

Local network, interface, and actual port

Sanitized log excerpt

One change made

Result after restart and repeat test

Redact pairing codes, credentials, and precise network details before posting, and never paste a full debug dump.

The other direction is HomeKit Device

The HomeKit Device documentation covers the reverse integration: bringing HomeKit accessories into Home Assistant. It says not to confuse it with HomeKit Bridge, which exposes Home Assistant devices to HomeKit.

A HomeKit device pairs with only one controller at a time, and removing it from the Apple Home app is part of that documented flow. Do not unpair real devices because the bridge is not found; the wrong integration can mimic a missing bridge.

The shortest correct path

Confirm the entity, pick the matching failure case, then check the network, logged interface, port and name, filter, and configuration origin. Only then touch router settings, host networking, or pairing resets.