{"record":{"id":"6f2c811f7ecf384b","repo":"diegosouzapw/OmniRoute","slug":"label-matched-no-connected-models-falling-back","errorCode":null,"errorMessage":"${label} matched no connected models; falling back to the full pool (OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=true)","messagePattern":"(.+?) matched no connected models; falling back to the full pool \\(OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=true\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"open-sse/services/autoCombo/virtualFactory.ts","lineNumber":935,"sourceCode":"  const candidateFilter = spec?.family\n    ? buildFamilyCandidateFilter(spec.family)\n    : spec\n      ? buildAutoCandidateFilter(spec.category, spec.tier)\n      : null;\n  if (candidateFilter) {\n    const narrowed = candidatePool.filter((candidate) => candidateFilter(candidate));\n    const label = spec?.family\n      ? `auto/${spec.family}`\n      : `auto/${spec?.category ?? \"\"}${spec?.tier ? `:${spec.tier}` : \"\"}`;\n    if (narrowed.length > 0) {\n      effectivePool = narrowed;\n    } else if (\n      !spec?.family &&\n      (process.env.OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL === \"true\" ||\n        process.env.OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL === \"1\")\n    ) {\n      // Opt-in legacy behavior (category/tier only): warn loudly, then keep the full pool.\n      log.warn(\n        \"AUTO\",\n        `${label} matched no connected models; falling back to the full pool (OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=true)`\n      );\n    } else {\n      // Family combos always degrade to an empty pool when unavailable — a family\n      // is a hard identity constraint, not a soft optimization bias, so there is\n      // no sensible \"fall back to the full pool\" behavior for it.\n      warnEmptyAutoPoolOnce(\n        label,\n        `${label} matched no connected models; returning an empty pool.${spec?.family ? \"\" : ' Set OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=true to restore the legacy \"use full pool\" behavior.'}`\n      );\n      effectivePool = [];\n    }\n  }\n\n  // Subscription-first routing (`auto/subscription`, `auto/thrifty`). Applied\n  // AFTER the category/tier narrowing above because, unlike every other tier,\n  // these two select on the connection's billing class and its live quota","sourceCodeStart":917,"sourceCodeEnd":953,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/open-sse/services/autoCombo/virtualFactory.ts#L917-L953","documentation":"Error \"${label} matched no connected models; falling back to the full pool (OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=true)\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at open-sse/services/autoCombo/virtualFactory.ts:935 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"}