{"record":{"id":"bc3e596593b3dbaf","repo":"Foundry376/Mailspring","slug":"there-are-multiple-components-available-for-json","errorCode":null,"errorMessage":"There are multiple components available for ${JSON.stringify(props.matching)}. <InjectedComponent> is only rendering the first one.","messagePattern":"There are multiple components available for (.+?)\\. <InjectedComponent> is only rendering the first one\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/components/injected-component.tsx","lineNumber":167,"sourceCode":"      const component = this.state.component;\n      this.props.requiredMethods.forEach((method) => {\n        if (component.prototype[method] === undefined) {\n          throw new Error(\n            `${\n              component.name\n            } must implement method ${method} when registering for ${JSON.stringify(\n              this.props.matching\n            )}`\n          );\n        }\n      });\n    }\n  };\n\n  _getStateFromStores = (props = this.props) => {\n    const components = ComponentRegistry.findComponentsMatching(props.matching);\n    if (components.length > 1) {\n      console.warn(\n        `There are multiple components available for ${JSON.stringify(\n          props.matching\n        )}. <InjectedComponent> is only rendering the first one.`\n      );\n    }\n    return {\n      component: components.length === 0 ? this.props.fallback : components[0],\n      visible: ComponentRegistry.showComponentRegions(),\n    };\n  };\n\n  render() {\n    if (!this.state.component) {\n      return <div />;\n    }\n    const exposedProps = Object.assign({}, this.props.exposedProps, {\n      fallback: this.props.fallback,\n    });","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/Foundry376/Mailspring/blob/648c685d602ece6bb00c22534b8734de6ac644b3/app/src/components/injected-component.tsx#L149-L185","documentation":"Warning in InjectedComponent._getStateFromStores: ComponentRegistry.findComponentsMatching returned more than one component for the given matching descriptor, but the component only renders one. Ambiguous registrations (e.g. two plugins both registering for the same location) mean all but the first are silently dropped.","triggerScenarios":"Thrown at app/src/components/injected-component.tsx:167 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the matching descriptor more specific (narrower location/role) so only one component qualifies","Disable one of the conflicting plugins/extensions that register for the same slot"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"648c685d602ece6bb00c22534b8734de6ac644b3","analyzedAt":"2026-09-03T02:00:24.311Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-10T07:17:11.731Z"}