{"record":{"id":"0faca01a260259f7","repo":"diegosouzapw/OmniRoute","slug":"services-missing-serviceproviderplugin-registrat","errorCode":null,"errorMessage":"[Services] Missing ServiceProviderPlugin registration for '9router'","messagePattern":"\\[Services\\] Missing ServiceProviderPlugin registration for '9router'","errorType":"panic","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/lib/services/bootstrap.ts","lineNumber":28,"sourceCode":"import { resolveSpawnArgs as muxSpawnArgs, MUX_DEFAULT_PORT } from \"./installers/mux\";\nimport {\n  resolveSpawnArgs as bifrostSpawnArgs,\n  BIFROST_DEFAULT_PORT,\n} from \"./installers/bifrost\";\nimport { resolveSpawnArgs as darioSpawnArgs, DARIO_DEFAULT_PORT } from \"./installers/dario\";\nimport { getOrCreateApiKey } from \"./apiKey\";\nimport { scheduleServiceModelSync, stopServiceModelSync } from \"./modelSync\";\nimport type { ServiceStatus } from \"./types\";\nimport { getServiceProviderPlugin } from \"./providerPlugins/registry\";\n\n// 9router's port/health/lifecycle config is sourced from the plugin registry (#7333\n// Phase 1) rather than an inline literal — the plugin object below must resolve to the\n// exact same values the pre-migration literal expressed here.\nconst NINEROUTER_PLUGIN = getServiceProviderPlugin(\"9router\");\nif (!NINEROUTER_PLUGIN) {\n  // Must never silently vanish from bootstrap — a missing plugin here means the\n  // registry (src/lib/services/providerPlugins/registry.ts) regressed.\n  throw new Error(\"[Services] Missing ServiceProviderPlugin registration for '9router'\");\n}\nconst NINEROUTER_PORT = parseInt(\n  process.env[NINEROUTER_PLUGIN.port.envVar] ?? String(NINEROUTER_PLUGIN.port.default),\n  10\n);\nconst CLIPROXY_PORT = parseInt(process.env.CLIPROXYAPI_PORT ?? String(CLIPROXY_DEFAULT_PORT), 10);\nconst MUX_PORT = parseInt(process.env.MUX_SERVICE_PORT ?? String(MUX_DEFAULT_PORT), 10);\nconst BIFROST_PORT = parseInt(process.env.BIFROST_PORT ?? String(BIFROST_DEFAULT_PORT), 10);\nconst DARIO_PORT = parseInt(process.env.DARIO_PORT ?? String(DARIO_DEFAULT_PORT), 10);\n\ntype ServiceEntry = {\n  tool: string;\n  port: number;\n  healthPath: string;\n  healthIntervalMs: number;\n  stopTimeoutMs: number;\n  logsBufferBytes: number;\n  needsApiKey: boolean;","sourceCodeStart":10,"sourceCodeEnd":46,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/services/bootstrap.ts#L10-L46","documentation":"Error \"[Services] Missing ServiceProviderPlugin registration for '9router'\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/services/bootstrap.ts:28 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}