{"record":{"id":"e94cda9aa3550e0b","repo":"homebridge/homebridge","slug":"matter-is-not-supported-on-accessory-child-bridges","errorCode":null,"errorMessage":"Matter is not supported on accessory child bridges. Ignoring matter configuration.","messagePattern":"Matter is not supported on accessory child bridges\\. Ignoring matter configuration\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"src/childBridgeFork.ts","lineNumber":157,"sourceCode":"    // load plugin\n    this.plugin = this.pluginManager.loadPlugin(data.pluginPath)\n    await this.plugin.load()\n    await this.pluginManager.initializePlugin(this.plugin, data.identifier)\n\n    // change process title to include plugin name\n    process.title = `homebridge: ${this.plugin.getPluginIdentifier()}`\n\n    this.sendMessage<ChildProcessPluginLoadedEventData>(ChildProcessMessageEventType.LOADED, {\n      version: this.plugin.version,\n    })\n  }\n\n  async startBridge(): Promise<void> {\n    // Conditionally load Matter support only if this child bridge has Matter active\n    // (configured + enabled OR externalsOnly). Prevents loading heavy Matter.js\n    // libraries for child bridges that don't use it.\n    if (isMatterActive(this.bridgeConfig.matter) && this.type === PluginType.ACCESSORY) {\n      matterLogger.warn('Matter is not supported on accessory child bridges. Ignoring matter configuration.')\n    }\n\n    if (isMatterActive(this.bridgeConfig.matter) && this.type !== PluginType.ACCESSORY) {\n      matterLogger.info('Loading Matter support for child bridge...')\n\n      // Note: api.loadMatterAPI() was already called at the start of loadPlugin()\n      // so api.matter is already defined by the time the plugin's initializer ran.\n\n      // Dynamically import Matter manager only when needed\n      const { ChildBridgeMatterManager } = await import('./matter/index.js')\n\n      // Create Matter bridge manager\n      this.matterManager = new ChildBridgeMatterManager(\n        this.bridgeConfig,\n        this.bridgeOptions,\n        this.api,\n        this.externalPortService,\n        this.pluginManager,","sourceCodeStart":139,"sourceCodeEnd":175,"githubUrl":"https://github.com/homebridge/homebridge/blob/edf54930340d67cade23d01abd41b03cd9621e8b/src/childBridgeFork.ts#L139-L175","documentation":"Informs that a child bridge hosting a single accessory (PluginType.ACCESSORY) has a 'matter' config block, but Matter is not supported for accessory-type child bridges, so the configuration is ignored. The fork checks isMatterActive(bridgeConfig.matter) combined with the bridge type and logs this warning instead of loading Matter. Only platform-type child bridges can expose Matter.","triggerScenarios":"An accessory config block with a '_bridge': { 'matter': {...} } section, started via ChildBridgeFork with type = PluginType.ACCESSORY.","commonSituations":"User copies a platform child bridge's _bridge config onto a single accessory block; config-ui generates a child bridge for an accessory and Matter was enabled by mistake.","solutions":["Remove the 'matter' block from the accessory's _bridge configuration","If Matter is required, host the accessory under a platform-type child bridge instead of an accessory child bridge","Leave HAP enabled on the accessory child bridge so it remains reachable"],"exampleFix":"// before\n{ \"accessories\": [{ \"accessory\": \"X\", \"name\": \"X\", \"_bridge\": { \"matter\": { \"enabled\": true } } }] }\n\n// after\n{ \"accessories\": [{ \"accessory\": \"X\", \"name\": \"X\", \"_bridge\": { \"name\": \"X bridge\" } }] }","handlingStrategy":"validation","validationCode":"const bridge = accessoryConfig._bridge\nif (bridge?.matter) console.warn('matter is ignored on accessory child bridges; move to a platform child bridge')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only add 'matter' blocks to platform-type child bridges","Document that accessory child bridges are HAP-only","Use Config UI X which knows the valid schema per bridge type"],"tags":["matter","child-bridge","config"],"backgroundTag":"unsupported-feature-config","analyzedSha":"edf54930340d67cade23d01abd41b03cd9621e8b","analyzedAt":"2026-08-30T21:28:53.235Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}