{"record":{"id":"d1a12332353006c8","repo":"RocketChat/Rocket.Chat","slug":"error-invalid-configuration","errorCode":"error-invalid-configuration","errorMessage":"['Configuration could only be partially verified'].concat(successes).concat(errors).join(', ')","messagePattern":"\\['Configuration could only be partially verified'\\]\\.concat\\(successes\\)\\.concat\\(errors\\)\\.join\\(', '\\)","errorType":"exception","errorClass":"Meteor.Error","httpStatus":null,"severity":"error","filePath":"apps/meteor/server/meteor-methods/platform/checkFederationConfiguration.ts","lineNumber":66,"sourceCode":"\t\t}\n\n\t\tconst {\n\t\t\troundTrip: { durationMs: duration },\n\t\t} = status.appservice;\n\n\t\tif (status.appservice.ok) {\n\t\t\tsuccesses.push(`appservice configuration looks good, total round trip time to homeserver ${duration}ms`);\n\t\t} else {\n\t\t\terrors.push(`failed to verify appservice configuration: ${status.appservice.error}`);\n\t\t}\n\n\t\tif (errors.length) {\n\t\t\tvoid service.markConfigurationInvalid();\n\n\t\t\tif (successes.length) {\n\t\t\t\tconst message = ['Configuration could only be partially verified'].concat(successes).concat(errors).join(', ');\n\n\t\t\t\tthrow new Meteor.Error('error-invalid-configuration', message, { method: 'checkFederationConfiguration' });\n\t\t\t}\n\n\t\t\tthrow new Meteor.Error('error-invalid-configuration', ['Invalid configuration'].concat(errors).join(', '), {\n\t\t\t\tmethod: 'checkFederationConfiguration',\n\t\t\t});\n\t\t}\n\n\t\tvoid service.markConfigurationValid();\n\n\t\treturn {\n\t\t\tmessage: ['All configuration looks good'].concat(successes).join(', '),\n\t\t};\n\t},\n});\n","sourceCodeStart":48,"sourceCodeEnd":81,"githubUrl":"https://github.com/RocketChat/Rocket.Chat/blob/b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0/apps/meteor/server/meteor-methods/platform/checkFederationConfiguration.ts#L48-L81","documentation":"The federation configuration check produced mixed results: at least one sub-check succeeded and at least one failed (errors.length > 0 with successes present), so the server throws error-invalid-configuration with 'Configuration could only be partially verified' plus every success and failure, and calls markConfigurationInvalid. Each failed sub-check (e.g. 'failed to verify appservice configuration: ...') is appended to the message.","triggerScenarios":"Running checkFederationConfiguration when part of the Matrix/federation bridge works (e.g. the appservice round-trip succeeds) while another component fails — the concatenated message names exactly which parts succeeded and which failed.","commonSituations":"Partially configured federation bridges: reachable homeserver but wrong appservice registration; firewalls allowing only some endpoints; DNS SRV records half-configured; certificates valid for one component only; configuration drift after infrastructure changes.","solutions":["Read the full error message — it enumerates each failed check with its reason; fix the named component first","Verify the Federation/Matrix bridge settings in the admin UI (homeserver URL, appservice id/secret) and network egress from the Rocket.Chat server to the homeserver","Re-run checkFederationConfiguration after each fix; the config is only marked valid when errors is empty","Re-check after any infra change (proxy, DNS, TLS certificates) that touches the bridge path"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"const isInvalidConfig = (e: unknown): e is Meteor.Error =>\n  typeof e === 'object' && e !== null && (e as { error?: string }).error === 'error-invalid-configuration';","tryCatchPattern":"try {\n  const { message } = await Meteor.callAsync('checkFederationConfiguration');\n} catch (e) {\n  if (isInvalidConfig(e)) {\n    renderConfigReport(e.reason); // reason lists each successful and failed sub-check\n    return;\n  }\n  throw e;\n}","preventionTips":["Surface the full error reason in the admin UI — it names each failing component","Run the configuration check after every federation or bridge change","Monitor homeserver reachability so partial failures are caught before they compound"],"tags":["rocket-chat","federation","matrix","configuration","admin","connectivity"],"backgroundTag":"configuration-validation-failed","analyzedSha":"b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0","analyzedAt":"2026-08-18T15:26:39.429Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}