homebridge/homebridge · warning

Accessory ${data.uuid} not found - no child bridge with Matt

Error message

Accessory ${data.uuid} not found - no child bridge with Matter claimed it

What it means

When handling a Matter control request forwarded to a child bridge, the Server waits up to 2 seconds for a child bridge with Matter to claim the accessory UUID. If the timeout fires, no child bridge claimed it, and the server replies { success: false, error: 'Accessory not found' } to the IPC caller while logging this warning.

Source

Thrown at src/server.ts:1232

        }

        // Every Matter child is asked and only the owner answers - a child that
        // does not have the accessory returns silently, by design. So when no
        // child owns it nothing is sent back at all, and the UI sat through its
        // own 10s timeout, retried the command, then reported a failure. Mirror
        // the accessoryInfoData fallback: arm a short timer that the owner's
        // response cancels (via ChildBridgeService.onAccessoryControlResponse).
        //
        // Only meaningful with a correlationId — the UI drops any response
        // without one, so there would be nothing to rescue.
        if (correlationId) {
          const existing = this.pendingMatterControlRequests.get(correlationId)
          if (existing) {
            clearTimeout(existing)
          }
          const fallback = setTimeout(() => {
            this.pendingMatterControlRequests.delete(correlationId)
            matterLogger.warn(`Accessory ${data.uuid} not found - no child bridge with Matter claimed it`)
            this.sendMatterControlResponse({ success: false, error: 'Accessory not found', uuid: data.uuid }, correlationId)
          }, 2000)
          fallback.unref()
          this.pendingMatterControlRequests.set(correlationId, fallback)
        }
      } else {
        matterLogger.warn(`Accessory ${data.uuid} not found - not on main bridge and no child bridges with Matter available`)
        this.sendMatterControlResponse({ success: false, error: 'Accessory not found', uuid: data.uuid }, correlationId)
      }
    }
  }

  private printSetupInfo(pin: string): void {
    /* eslint-disable no-console */
    console.log('Setup Payload:')
    console.log(this.bridgeService.bridge.setupURI())

    if (!this.options.hideQRCode) {

View on GitHub (pinned to edf5493034)

Solutions

  1. Verify the accessory still exists in config.json and is hosted by a child bridge with matter enabled
  2. Restart Homebridge so child bridges re-register their Matter accessories
  3. Re-pair the accessory if it was re-created (UUID changed)
  4. Check child bridge logs for startup failures

Example fix

// before
{ "accessories": [{ "accessory": "X", "name": "Light", "_bridge": { "username": ".." } }] }
// after
{ "accessories": [{ "accessory": "X", "name": "Light", "_bridge": { "username": "..", "matter": {} } }] }
Defensive patterns

Strategy: retry

Validate before calling

const isMatterHosted = config.accessories?.some(a => a._bridge?.matter && a.uuid === requestedUuid)
if (!isMatterHosted) reject(new Error(`Accessory ${requestedUuid} has no Matter child bridge`))

Try / catch

const res = await sendMatterControlRequest(msg)
if (!res.success && res.error === 'Accessory not found') {
  // fall back or surface to UI
}

Prevention

When it happens

Trigger: A Matter control IPC message references an accessory UUID that no child bridge with Matter enabled has claimed within the 2s fallback timeout.

Common situations: Accessory was removed or moved to a bridge without Matter; child bridge crashed; config UUID typo; Matter not enabled on the child bridge hosting the accessory.

Related errors


AI-assisted analysis of homebridge/homebridge@edf5493034 (2026-08-30). Data as JSON: /api/errors/b53d8ef9990a250f. Report an issue: GitHub.