🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Pre používateľov: Hľadáte rýchle riešenia? Pozrite si Stručnú referenčnú príručku nižšie.
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Bežné problémy a ich riešenia pre OmniRoute.
Ste v OmniRoute noví? Začnite tu — tieto riešenia vyriešia 90 % problémov:
| Zobrazuje sa mi | Čo to znamená | Čo treba urobiť |
|---|---|---|
| "Can't connect" | OmniRoute nie je spustený | Spustite omniroute alebo docker restart omniroute |
| "Invalid API key" | Váš kľúč je nesprávny alebo jeho platnosť vypršala | Znova skopírujte kľúč z webovej lokality poskytovateľa |
| "Rate limit exceeded" | Odosielate príliš veľa požiadaviek | Počkajte 1 minútu alebo použite model: "auto" na automatické prepnutie |
| "Quota exceeded" | Vyčerpali ste svoju bezplatnú/platenú kvótu | Pripojte ďalších poskytovateľov alebo použite bezplatných poskytovateľov (Kiro, Pollinations) |
| "Slow responses" | Poskytovateľ je vyťažený alebo príliš vzdialený | Použite model: "auto/fast" alebo pripojte rýchlejšieho poskytovateľa (Groq, Cerebras) |
| "Wrong provider used" | auto vybral iného poskytovateľa |
To je normálne! auto vyberá najlepšieho. Konkrétneho poskytovateľa vynútite pomocou model: "openai/gpt-4o" |
| "502 Bad Gateway" | Poskytovateľ je nedostupný | Počkajte a skúste to znova alebo použite model: "auto" na prepnutie poskytovateľa |
| "401 Unauthorized" | Vaše prihlasovacie údaje sú nesprávne | Skontrolujte svoj API kľúč alebo sa znova overte pomocou OAuth |
| "omniroute is not recognized" | V premennej Windows PATH chýbajú globálne moduly node | Pridajte svoj globálny prefix npm do premennej Windows PATH. Zistíte ho pomocou npm config get prefix. |
| "429 Too Many Requests" | Bola prekročená frekvencia požiadaviek | Počkajte 1 minútu alebo pripojte ďalších poskytovateľov |
Stále máte problém? Pozrite si podrobné riešenie problémov nižšie alebo sa opýtajte na Discorde.
Príznak: Pri používaní model: "auto" s bezplatnými poskytovateľmi alebo poskytovateľmi bez overenia (opencode, auggie atď.) sa namiesto odpovedí občas zobrazí HTTP 429, 400 alebo 401. Pri opätovnom odoslaní rovnakej výzvy o chvíľu neskôr požiadavky uspejú, ale automatizácia (úlohy cron, agenti, skripty) zlyhá už pri prvej chybe.
Hlavná príčina: Súčasne sa prejavujú tri nezávislé režimy zlyhania:
- Obmedzenie frekvencie požiadaviek poskytovateľa (
429): Bezplatné úrovne môžu vynucovať kvótu na časové okno. Dávka paralelných volaní ju vyčerpá, takže ďalšia požiadavka bude odmietnutá, kým sa časové okno neobnoví. - Nefunkčný model pri priamom preposielaní (
400/401): Fondyauto/*môžu obsahovať modely s priamym preposielaním odopencode, ktoré sú zaregistrované v katalógu, ale nemajú platné prihlasovacie údaje (napr.oc/north-mini-code-free→401). Automatický smerovač jeden z nich vyskúša, zlyhá a chyba sa rozšíri skôr, než sa aktivuje záložný mechanizmus. - Zosilnenie súbežnosťou (
429pri zaťažení): Keď viacero relácií agentov alebo úloh cron pristupuje kautonaraz, celková frekvencia požiadaviek prekročí toleranciu bezplatných poskytovateľov, takže legitímne volania sú označené ako zneužitie.
Overené riešenie (ohlásené komunitou, 2026-08-10): nastavte tri premenné prostredia tak, aby rotácia, súbežnosť a záložný mechanizmus zvládli nestabilitu bezplatnej úrovne namiesto toho, aby na nej zlyhali:
export OMNIROUTE_ROTATE_ON_400=true # pri 400/401 prejsť na iný model/poskytovateľa (preskočí nefunkčné modely s priamym preposielaním)
export OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT=4 # explicitný maximálny počet prijatých náročných požiadaviek (predvolene nenastavené: bez obmedzenia počtu požiadaviek, pozrite si poznámku nižšie)
export OMNIROUTE_CHAT_ADMISSION_QUEUE_MS=5000 # dlhšie obmedzené čakanie na kapacitu pre náročné požiadavky namiesto okamžitej opakovateľnej chyby 503Nastavte ich v prostredí procesu OmniRoute (v démonovi, napr. prostredníctvom súboru plist služby LaunchAgent alebo systemctl edit) a potom OmniRoute reštartujte. Príznak rotácie má zo všetkých nastavení najväčší účinok: zmení úplné zlyhanie na transparentný opakovaný pokus prostredníctvom funkčného poskytovateľa vo fonde.
Poznámka: OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT obmedzuje počet súčasne spustených náročných požiadaviek — požiadaviek s dlhým kontextom; toto obmedzenie je vstupnou bránou, nie obmedzovačom frekvencie požiadaviek poskytovateľa. Aktualizácia #503-fanout: táto premenná už nie je predvolene nastavená (teraz sa uplatní iba pri explicitnej konfigurácii, ako je uvedené vyššie) — prijímanie náročných požiadaviek namiesto toho riadi automaticky odvodený bajtový rozpočet (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES), ktorý sa prispôsobuje skutočnému pamäťovému limitu hostiteľa. Nové nasadenie by preto malo zaznamenať oveľa menej odmietnutí 503 chat_admission_busy bez potreby nastaviť túto premennú; jej explicitné nastavenie na tomto mieste naďalej funguje presne podľa dokumentácie. Explicitné prepisy bajtového rozpočtu sú obmedzené na 8 MiB–2 GiB. Chyba 413 body_exceeds_budget nie je dočasná: zvýšte tento bajtový rozpočet, znížte OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES alebo zvýšte pamäťový limit procesu. Odmietnutie inflight_bytes_budget spôsobuje dočasné súperenie o prostriedky a požiadavku možno naďalej zopakovať. Obmedzovanie frekvencie požiadaviek pre jednotlivých poskytovateľov (open-sse/services/rateLimitManager.ts) osobitne riadia RATE_LIMIT_MAX_WAIT_MS, RATE_LIMIT_MAX_QUEUE_DEPTH a RATE_LIMIT_AUTO_ENABLE — pozrite si .env.example.
Ako overiť, že to funguje: spustite agenta/cron dvakrát rýchlo za sebou a overte, že obe spustenia uspejú. Pred opravou druhé spustenie zvyčajne vyhodí chybu 429/401. Po oprave sa neúspešné pokusy (ak sa vyskytnú) transparentne zopakujú a volanie sa dokončí. Môžete tiež spustiť curl /monitoring/health a sledovať pole rateLimitedUntil pri pripojeniach poskytovateľov a circuitBreakers.providerBreakers[].state pri dotknutých poskytovateľoch — stav je jeden z CLOSED, DEGRADED, OPEN alebo HALF_OPEN (pozrite si src/shared/utils/circuitBreaker.ts) a poskytovateľ, ktorého volania opakovane zlyhávajú, prejde zo stavu CLOSED → DEGRADED → OPEN, kým okno obnovenia nepovolí skúšobné volanie (HALF_OPEN).
Ak sa chyba 429 zobrazuje aj naďalej: aktívny účet daného poskytovateľa skutočne vyčerpal svoju kvótu (nejde iba o obmedzenie frekvencie požiadaviek). Pridajte druhý účet pre toho istého poskytovateľa v ovládacom paneli OmniRoute → Providers → Accounts alebo pridajte iného bezplatného poskytovateľa (napr. routeway, auggie). Rotácia pomáha iba pri prechodných chybách obmedzenia frekvencie požiadaviek/400/401; úplné vyčerpanie kvóty vyžaduje druhé prihlasovacie poverenie alebo iného poskytovateľa.
Ak sa pri modeloch na spracovanie obrazu (auto/vision, bazaarlink/*) zobrazuje chyba 403: pripojený účet nemá platený program, ktorý zahŕňa spracovanie obrazu, alebo API kľúč nemá dostatočné oprávnenia. V ovládacom paneli poskytovateľa overte, že rozsah oprávnení kľúča zahŕňa spracovanie obrazu/multimodálne funkcie, alebo pripojte účet s plateným programom a ponechajte ho ako cieľ pre spracovanie obrazu.
Pri spustení npm install -g omniroute sa môže zobraziť množstvo upozornení, ako napríklad npm warn ERESOLVE, oznámenia o partnerských závislostiach a správy deprecated. Tieto upozornenia sú očakávané a neškodné. Inštalácia bola úspešná, ak sa vo výstupe zobrazí added <N> packages.
Ak chcete potlačiť upozornenia týkajúce sa riešenia partnerských závislostí, použite podporovaný spôsob inštalácie OmniRoute:
npm install -g omniroute --legacy-peer-deps--legacy-peer-deps potlačí iba upozornenia ERESOLVE a oznámenia o partnerských závislostiach. Oznámenia o zastaraných balíkoch zostanú viditeľné, pretože pochádzajú z tranzitívnych balíkov tretích strán; neznamenajú, že inštalácia zlyhala.
Upozornenia pochádzajú zo zastaraných rozsahov partnerských závislostí v balíkoch tretích strán, ktoré OmniRoute nemá pod kontrolou:
marked-terminalvyžadujemarked >=1 <16, našla sa verziamarked@18— v praxi funguje správne; rozsah partnerskej závislosti v nadradenom projekte je iba zastaraný.deprecated prebuild-install@7.1.3— tranzitívny pomocný nástroj na získavanie natívnych binárnych súborov. Nepoužíva sa na inštaláciu pripnutého transportného rozhraniawreq-jsa neznamená, že nastavenie transportu poskytovateľa webových súborov cookie zlyhalo.
Nie je potrebná žiadna akcia — upozornenia nemožno úplne potlačiť bez vytvorenia forkov nadradených balíkov.
Ak požiadavka Gemini Web vráti stav 503 so správou, že Playwright Chromium
nie je nainštalovaný, balík npm je prítomný, ale chýba binárny súbor prehliadača.
Playwright zámerne oddeľuje sťahovanie prehliadačov od inštalácie balíkov npm,
takže táto odpoveď je očakávaná, kým sa prehliadač nenainštaluje.
Pri globálnej inštalácii npm nainštalujte Chromium z adresára balíka OmniRoute, aby vyrovnávacia pamäť prehliadača patrila k rovnakej inštalácii Playwright:
cd "$(npm root -g)/omniroute"
npx playwright install chromiumPo inštalácii reštartujte OmniRoute a potom požiadavku Gemini Web zopakujte. Ak
spúšťate OmniRoute z obrazu Docker, použite obraz -web (alebo cieľ zostavenia
runner-web), ktorý obsahuje Chromium a jeho závislosti; základný obraz ich
neobsahuje.
| Problém | Riešenie |
|---|---|
| Prvé prihlásenie nefunguje | Nastavte INITIAL_PASSWORD v .env (bez pevne zakódovanej predvolenej hodnoty) |
| Ovládací panel sa otvára na nesprávnom porte | Nastavte PORT=20128 a NEXT_PUBLIC_BASE_URL=http://localhost:20128 |
| Na disk sa nezapisujú žiadne protokoly | Nastavte APP_LOG_TO_FILE=true a overte, či je povolené zachytávanie protokolov volaní |
| EACCES: prístup odmietnutý | Nastavte DATA_DIR=/path/to/writable/dir, čím prepíšete ~/.omniroute |
| Stratégia smerovania sa neukladá | Aktualizujte na najnovšie vydanie v3.x (oprava schémy Zod pre ukladanie nastavení bola vydaná v skorších verziách) |
| Zlyhanie prihlásenia / prázdna stránka | Skontrolujte verziu Node.js — pozrite si nižšie časť Kompatibilita s Node.js |
dlopen / slice is not valid mach-o file (macOS) |
Spustite cd $(npm root -g)/omniroute/app && npm rebuild better-sqlite3 && omniroute — pozrite si nižšie časť Opätovné zostavenie natívneho modulu v systéme macOS |
| Proxy: „fetch failed“ | Uistite sa, že konfigurácia proxy je nastavená na správnej úrovni — pozrite si nižšie časť Problémy s proxy |
Docker curl: (56) Recv failure: Connection reset by peer |
Väzba portu Docker môže smerovať na IPv6. Použite -p 127.0.0.1:20128:20128, čím vynútite IPv4, alebo vykonajte test pomocou curl -4. Pozrite si nižšie časť Docker IPv6 |
Antivírus umiestni README.md do karantény |
Falošne pozitívny nález — pozrite si nižšie časť Falošne pozitívne nálezy antivírusu |
| Kaspersky označí desktopovú aplikáciu za trójskeho koňa | Falošne pozitívny nález založený na správaní nepodpísaného inštalátora — pozrite si nižšie časť Falošne pozitívne nálezy antivírusu |
Ide o falošne pozitívnu detekciu. Nič nie je infikované a nie je potrebné vykonať žiadne kroky.
Avast a AVG používajú heuristiku, ktorá označuje textové súbory alebo súbory Markdown obsahujúce veľa
odkazov pripomínajúcich HTTP požiadavky. Súbor README.md projektu OmniRoute je súčasťou npm balíka (je
uvedený v package.json → files), takže pri globálnej inštalácii sa uloží do
node_modules/omniroute/README.md — a obsahuje približne 15 príkladov
http://localhost:20128/... (koncové body MCP HTTP/SSE, adresu URL A2A .well-known a ukážky
príkazov curl). Takáto hustota odkazov stačí na spustenie heuristiky.
Ak sa to začalo diať len nedávno: charakter súboru sa nezmenil. V README sa rozšírila
tabuľka koncových bodov (boli pridané MCP HTTP + SSE + A2A) a pribudli ďalšie príklady
príkazov curl, čím súbor prekročil prah detekcie.
Súbor je neaktívna dokumentácia bez akéhokoľvek spustiteľného obsahu. Môžete ho bezpečne obnoviť z karantény.
Čo treba urobiť:
- Zastavte upozornenia — pridajte inštalačný adresár medzi výnimky antivírusu
(Avast: Nastavenia → Výnimky), pričom pridajte cestu ku globálnemu adresáru
node_modulesa/alebo dátový adresár OmniRoute (~/.omniroute/). - Nahláste falošne pozitívnu detekciu — https://www.avast.com/false-positive-file-form.php,
pričom priložte súbor
README.mdz karantény. Toto riešenie pomôže všetkým, pretože ide o neprimeranú reakciu heuristiky dodávateľa na textový súbor.
Prečo to „neopravíme“ na našej strane: všetky príklady používajú http://localhost a
localhost nemožno používať cez https bez komplikácií so samopodpísaným certifikátom. Komolenie dokumentácie
s cieľom obísť heuristiku jedného dodávateľa by poškodilo každého čitateľa len preto, aby sa vyhovelo chybe skenera.
Ide o falošne pozitívnu detekciu behaviorálnej heuristiky. Nič nie je infikované. Predpona
PDM: v produktoch Kaspersky znamená, že verdikt pochádza z modulu Proactive Defense Module (System Watcher),
ktorý posudzuje, čo inštalátor robí, namiesto toho, aby ho porovnával so známym malvérom. Keď
sa detekcia spustí, Kaspersky „vráti späť“ celú inštaláciu — odstráni súbory, ktoré už
zapísal — takže aplikácia je následne poškodená alebo chýba.
Súbory, ktoré označuje, sú štandardnými súčasťami deklarovaných závislostí s otvoreným zdrojovým kódom, ktoré sú pribalené k desktopovej aplikácii, napríklad:
resources/app/.build/next/node_modules/playwright-<hash>/lib/…/agentParser.jsaworkerProcessEntry.js— Playwright, knižnica na automatizáciu prehliadača používaná na prihlasovanie k poskytovateľom v aplikácii a čet využívajúci prehliadač.resources/app/.build/next/node_modules/@wreq-js/binding-win32-<arch>-msvc-<hash>/wreq-js.win32-<arch>-msvc.node— pripnutá natívna väzbawreq-jspoužívaná na HTTP požiadavky s odtlačkom prehliadača pri poskytovateľoch využívajúcich webové súbory cookie (<arch>jex64aleboarm64).
Prečo sa detekcia spustí: inštalátor pre Windows zatiaľ nie je podpísaný kódom, takže nepodpísaný inštalátor
NSIS nemá žiadnu reputáciu a behaviorálne heuristiky pracujú s maximálnou agresivitou. V kombinácii
s pribalenou natívnou knižnicou DLL a stovkami súborov .js zapisovaných do
%LOCALAPPDATA%\Programs\OmniRoute (vrátane adresárov balíkov s príponou obsahujúcou hash zo
samostatného zostavenia Next.js) to stačí na spustenie heuristiky. Podpisovanie kódu sa plánuje;
dovtedy sa to môže opakovať pri každom novom vydaní.
Čo treba urobiť:
- Najskôr overte stiahnutý súbor (tým vylúčite manipuláciu so súborom). Každé vydanie obsahuje
latest.yml, ktorého polesha512(base64) pokrýva inštalátorOmniRoute.Setup.<version>.exe. V prostredí PowerShell spustite v priečinku obsahujúcom inštalátor:Výstup sa musí zhodovať s hodnotou$b = [System.Security.Cryptography.SHA512]::Create().ComputeHash( [System.IO.File]::ReadAllBytes("$PWD\OmniRoute.Setup.<version>.exe")) [Convert]::ToBase64String($b)
latest.yml→sha512. Ak sa nezhoduje, odstráňte súbor a znova ho stiahnite iba zo stránky vydaní na GitHube. - Obnovte súbory a pridajte výnimku — obnovte položky odstránené pri vrátení inštalácie z karantény a pridajte výnimku
pre
%LOCALAPPDATA%\Programs\OmniRoute(Kaspersky → Nastavenia → Hrozby a výnimky), potom aplikáciu znova nainštalujte. - Nahláste falošne pozitívnu detekciu — https://opentip.kaspersky.com/. Hlásenia falošne pozitívnych detekcií od používateľov skutočne urýchľujú pridanie do zoznamu povolených položiek.
Príčina: Používate verziu Node.js mimo schváleného bezpečného rozsahu behového prostredia OmniRoute. Najčastejšie ide o používanie staršej opravnej verzie Node 22 alebo 24, ktorá nespĺňa minimálnu úroveň bezpečnostných opráv vyžadovanú službou OmniRoute.
Príznaky:
- Prihlasovacia stránka zobrazí prázdnu obrazovku alebo chybu servera
- Konzola zobrazí
Error: Module did not self-registeralebo podobné chyby natívnych väzieb - Ak je behového prostredie mimo podporovaných bezpečnostných pravidiel, na prihlasovacej stránke sa zobrazí oranžový výstražný banner s vašou verziou Node
Riešenie:
- Nainštalujte podporované vydanie Node.js LTS (odporúčané: Node.js 24.x):
nvm install 24 nvm use 24
- Overte svoju verziu:
node --versionby malo v rámci línie 24.x LTS zobraziťv24.0.0alebo novšiu verziu - Preinštalujte OmniRoute:
npm install -g omniroute - Reštartujte aplikáciu:
omniroute
Podporované bezpečné verzie:
>=22.22.2 <23alebo>=24.0.0 <27. Node.js 24.x LTS (Krypton) a Node.js 26 sú plne podporované.
Príčina: npm v11 (dodávaný s Node.js 24+) predvolene blokuje inštalačné skripty voliteľných
závislostí. Keďže better-sqlite3 je uvedený v optionalDependencies
a vyžaduje natívnu kompiláciu (node-gyp rebuild), npm ho bez upozornenia preskočí.
Príznaky:
- Server pri spustení zlyhá s chybou
Cannot find module 'better-sqlite3' ls node_modules/better-sqlite3zobrazí „No such file or directory“npm ls better-sqlite3zobrazí(empty)
Riešenie:
- Povoľte inštalačné skripty a vykonajte opätovnú inštaláciu:
npm approve-scripts better-sqlite3 npm install
- Alebo manuálne nainštalujte vopred zostavený balík:
npm pack better-sqlite3@13.0.1 tar -xzf better-sqlite3-*.tgz -C node_modules mv node_modules/package node_modules/better-sqlite3 rm better-sqlite3-*.tgz
- Overte jeho funkčnosť:
node -e "require('better-sqlite3')(':memory:').close(); console.log('OK')"
Príčina: Po globálnom spustení npm install -g omniroute mohol byť natívny binárny súbor better-sqlite3 v balíku skompilovaný pre inú architektúru alebo ABI Node.js, než aké sa používa lokálne. Je to bežné v systéme macOS (na platformách Apple Silicon aj Intel), keď vopred zostavený binárny súbor nezodpovedá vášmu prostrediu.
Príznaky:
- Server ihneď po spustení zlyhá s chybou
dlopen - Chyba obsahuje
slice is not valid mach-o file - Úplný príklad:
dlopen(/Users/<user>/.nvm/versions/node/v24.14.1/lib/node_modules/omniroute/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '...' (slice is not valid mach-o file)
Riešenie — zostavte modul znova pre svoje lokálne prostredie (prechod na staršiu verziu Node.js nie je potrebný):
cd $(npm root -g)/omniroute/app
npm rebuild better-sqlite3
omniroutePoznámka: Týmto sa natívna väzba znova skompiluje pre vašu lokálnu verziu Node.js a architektúru procesora, čím sa vyrieši nezhoda binárnych súborov. Oficiálne podporovaný rozsah behového prostredia je
>=22.22.2 <23alebo>=24.0.0 <27(SUPPORTED_NODE_RANGEvsrc/shared/utils/nodeRuntimeSupport.ts, zosúladený s poľomenginesv súborepackage.json). Node.js 24.x LTS (Krypton) a Node.js 26 sú plne podporované sbetter-sqlite3v12.x.
Príčina: Koncový bod na overenie API kľúča (POST /api/providers/validate) predtým obchádzal konfiguráciu proxy, čo spôsobovalo zlyhania v prostrediach vyžadujúcich smerovanie cez proxy.
Oprava (v3.5.5+): Tento problém je teraz opravený. Overenie poskytovateľa je smerované cez runWithProxyContext, pričom sa automaticky rešpektujú nastavenia proxy na úrovni poskytovateľa aj globálne nastavenia proxy.
Príčina: Obnovovanie tokenov OAuth na pozadí neurčovalo konfiguráciu proxy pre jednotlivé pripojenia.
Oprava (v3.5.5+): Plánovač kontroly stavu tokenov teraz pred pokusom o obnovenie určuje konfiguráciu proxy pre každé pripojenie. Aktualizujte na v3.5.5+.
Príčina: V Node.js 22 nie je dispatcher undici@8 kompatibilný so vstavanou implementáciou fetch() v Node.
Oprava (v3.5.5+): Keď je aktívny proxy dispatcher, OmniRoute teraz používa vlastnú funkciu fetch() z undici, čím zabezpečuje konzistentné správanie. Aktualizujte na v3.5.5+.
Príčina: Proxy MITM a jej certifikát CA sa nainštalujú do prostredia, v ktorom je spustený OmniRoute. Vo WSL je týmto prostredím hosťovský systém Linux, zatiaľ čo desktopové aplikácie AI (Kiro, Trae, Copilot, Zed, …) sú spustené na hostiteľskom systéme Windows. Hostiteľské aplikácie nedôverujú úložisku certifikátov hosťovského systému a nesmerujú komunikáciu cez systémovú proxy hosťovského systému, takže zachytávanie desktopových aplikácií sa v takomto prípade neaktivuje.
Odporúčanie: Spustite OmniRoute natívne v rovnakom operačnom systéme ako desktopové aplikácie, ktoré chcete zachytávať (Windows pre aplikácie systému Windows; obdobne pre macOS/Linux). Zachovanie OmniRoute vo WSL pri súčasnom zacielení na hostiteľské aplikácie vyžaduje manuálne nastaviť dôveryhodnosť vygenerovaného certifikátu CA na hostiteľskom systéme Windows a nasmerovať sieťové/proxy nastavenia každej hostiteľskej aplikácie na koncový bod proxy vo WSL — ide o nepodporované a nestabilné nastavenie.
Príčina: Kvóta poskytovateľa bola vyčerpaná.
Oprava:
- Skontrolujte sledovanie kvóty na ovládacom paneli
- Použite kombináciu so záložnými úrovňami
- Prepnite na lacnejšiu/bezplatnú úroveň
Príčina: Kvóta predplatného bola vyčerpaná.
Oprava:
- Pridajte záložnú možnosť:
cc/claude-opus-4-6 → glm/glm-4.7 → if/qwen3.8-max-preview - Použite GLM/MiniMax ako lacnú zálohu
OmniRoute automaticky obnovuje tokeny. Ak problémy pretrvávajú:
- Ovládací panel → Poskytovateľ → Znovu pripojiť
- Odstráňte pripojenie poskytovateľa a znova ho pridajte
Príčina: Backend služby Kiro vynucuje jednu aktívnu reláciu pre každú registráciu klienta OIDC. Keď dva účty zdieľajú rovnakého registrovaného klienta (pripojenia importované pred v3.8.0), obnovenie tokenu jedného účtu zneplatní obnovovací token druhého účtu.
Oprava (v3.8.0+): Znova importujte dotknuté pripojenia. Od verzie v3.8.0 si každé nové pripojenie Kiro vytvorené prostredníctvom možnosti Importovať token, Sociálne prihlásenie cez Google/GitHub alebo Automatický import automaticky zaregistruje vlastného vyhradeného klienta OIDC. Pripojenie je preto úplne izolované a obnovenie jedného účtu nemá žiadny vplyv na iný účet.
Pripojenia importované pred v3.8.0 nemajú registráciu klienta pre jednotlivé pripojenia. Tieto pripojenia naďalej používajú zdieľaný koncový bod na obnovenie sociálneho overenia. Ak chcete dosiahnuť izoláciu, odstráňte staré pripojenie cez Ovládací panel → Poskytovatelia a znova ho pridajte pomocou ktoréhokoľvek z troch spôsobov importu.
Úplné podrobnosti a podrobné pokyny na pridanie dvoch účtov Kiro vedľa seba
nájdete v dokumente docs/guides/KIRO_SETUP.md.
- Overte, či
BASE_URLsmeruje na vašu spustenú inštanciu (napr.http://localhost:20128) - Overte, či
CLOUD_URLsmeruje na váš cloudový koncový bod (napr.https://omniroute.dev) - Udržiavajte hodnoty
NEXT_PUBLIC_*zosúladené s hodnotami na strane servera
Príznak: Unexpected token 'd'... na cloudovom koncovom bode pri volaniach bez streamovania.
Príčina: Nadradená služba vracia dáta SSE, zatiaľ čo klient očakáva JSON.
Dočasné riešenie: Pri priamych volaniach cloudu použite stream=true. Lokálne runtime prostredie obsahuje záložný prevod SSE→JSON.
- Vytvorte nový kľúč v lokálnom dashboarde (
/api/keys) - Spustite synchronizáciu s cloudom: Enable Cloud → Sync Now
- Staré alebo nesynchronizované kľúče môžu v cloude stále vracať
401
Príznaky: curl http://localhost:20128/v1/models vráti curl: (56) Recv failure: Connection reset by peer. Dashboard a neautentifikované koncové body fungujú, ale autentifikované koncové body zlyhávajú — vyzerá to ako problém s autentifikáciou, ale nie je.
Príčina: docker run -p 20128:20128 publikuje na 0.0.0.0 (IPv4) aj :: (IPv6), ale proces v kontajneri počúva iba na IPv4. Na hostiteľoch, kde sa localhost najskôr preloží na ::1, pripojenie smeruje na publikovaný port IPv6, za ktorým nie je žiadny počúvajúci proces → pripojenie sa resetuje.
Riešenie:
- Rýchla diagnostika: Spustite
curl -4 http://localhost:20128/v1/models. Ak to s-4funguje, ale bez neho zlyhá, máte nezhodu vo väzbe IPv6. - Trvalé riešenie: Vynúťte väzbu na IPv4 použitím
-p 127.0.0.1:20128:20128v príkazedocker run:Týmto vynútite väzbu na IPv4 a zároveň zabránite sprístupneniu proxy na všetkých rozhraniach hostiteľa.docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \ -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
- Skontrolujte polia runtime prostredia:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - Pre prenosný režim: použite cieľ obrazu
runner-cli(s pribalenými nástrojmi CLI) - Pre režim pripojenia z hostiteľa: nastavte
CLI_EXTRA_PATHSa pripojte adresár binárnych súborov hostiteľa iba na čítanie - Ak
installed=truearunnable=false: binárny súbor bol nájdený, ale kontrola stavu zlyhala
curl -s http://localhost:20128/api/cli-tools/codex-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/claude-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'- Skontrolujte štatistiky používania v Dashboard → Usage
- Prepnite primárny model na GLM/MiniMax
- Na nekritické úlohy použite bezplatnú úroveň (Qoder, Kiro)
- Nastavte rozpočty nákladov pre jednotlivé kľúče API: Dashboard → API Keys → Budget
Nastavte APP_LOG_TO_FILE=true v súbore .env. Denníky aplikácie sa zapisujú do adresára logs/.
Artefakty požiadaviek sa ukladajú do ${DATA_DIR}/call_logs/, keď je v nastaveniach povolený proces zaznamenávania volaní.
Keď je povolené zachytávanie v procese, nastavte CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS=false, aby sa vynechali
dáta fragmentov streamu, alebo upravte CALL_LOG_PIPELINE_MAX_SIZE_KB, ak chcete zmeniť limit veľkosti artefaktov v kB.
# Dashboard stavu
http://localhost:20128/dashboard/health
# Kontrola stavu API
curl http://localhost:20128/api/monitoring/health- Hlavný stav:
${DATA_DIR}/storage.sqlite(poskytovatelia, kombinácie, aliasy, kľúče, nastavenia) - Používanie: tabuľky SQLite v
storage.sqlite(usage_history,call_logs,proxy_logs) + voliteľne${DATA_DIR}/call_logs/ - Denníky aplikácie:
<repo>/logs/...(keďAPP_LOG_TO_FILE=true) - Artefakty denníka volaní:
${DATA_DIR}/call_logs/YYYY-MM-DD/..., keď je povolený proces zaznamenávania volaní
Akcia Clean history na stránke Request Logs vymaže call_logs, staršie
request_detail_logs a lokálny adresár artefaktov ${DATA_DIR}/call_logs/.
Keď je istič poskytovateľa v stave OPEN, požiadavky sú blokované až do uplynutia času obnovenia.
Riešenie:
- Prejdite na Dashboard → Settings → Resilience
- Skontrolujte kartu ističa pre dotknutého poskytovateľa
- Kliknutím na Reset All vymažte všetky ističe alebo počkajte na uplynutie času obnovenia
- Pred resetovaním overte, či je poskytovateľ skutočne dostupný
Ak poskytovateľ opakovane prechádza do stavu OPEN:
- Skontrolujte vzorec zlyhaní v časti Dashboard → Health → Provider Health
- Prejdite na Settings → Resilience → Provider Profiles a zvýšte prah zlyhaní
- Skontrolujte, či poskytovateľ nezmenil limity API alebo nevyžaduje opätovné overenie
- Skontrolujte telemetriu latencie — vysoká latencia môže spôsobovať zlyhania v dôsledku prekročenia časového limitu
- Použite ID modelu, ktorého prvý segment zodpovedá poskytovateľovi, pre ktorého máte prihlasovacie údaje (
openai/whisper-1,openrouter/deepgram/nova-3). Samostatnédeepgram/nova-3vyžaduje natívny kľúč Deepgram. - Overte, či je poskytovateľ pripojený v časti Dashboard → Providers
- Skontrolujte podporované zvukové formáty:
mp3,wav,m4a,flac,ogg,webm - Overte, či je veľkosť súboru v rámci limitov poskytovateľa (zvyčajne < 25MB)
- Na karte poskytovateľa skontrolujte platnosť kľúča API
Na ladenie problémov s prevodom formátov použite Dashboard → Translator:
| Režim | Kedy ho použiť |
|---|---|
| Playground | Porovnajte vstupné a výstupné formáty vedľa seba — vložte zlyhávajúcu požiadavku a pozrite sa, ako sa prevedie |
| Chat Tester | Odosielajte živé správy a kontrolujte kompletný obsah požiadavky a odpovede vrátane hlavičiek |
| Test Bench | Spustite dávkové testy naprieč kombináciami formátov a zistite, ktoré prevody nefungujú |
| Live Monitor | Sledujte tok požiadaviek v reálnom čase a zachyťte občasné problémy s prevodom |
- Značky uvažovania sa nezobrazujú — Skontrolujte, či cieľový poskytovateľ podporuje uvažovanie, a nastavenie rozpočtu na uvažovanie
- Volania nástrojov sa strácajú — Niektoré prevody formátov môžu odstrániť nepodporované polia; overte to v režime Playground
- Chýba systémová výzva — Claude a Gemini spracúvajú systémové výzvy odlišne; skontrolujte výstup prevodu
- SDK vracia nespracovaný reťazec namiesto objektu — Vyriešené vo v1.x; sanitizátor odpovedí odstraňuje neštandardné polia (
x_groq,usage_breakdownatď.), ktoré spôsobujú zlyhania validácie Pydantic v OpenAI SDK. Ak sa tento problém stále vyskytuje vo v3.x+, nahláste ho. - GLM/ERNIE odmieta rolu
system— Vyriešené vo v1.x; normalizátor rolí automaticky zlučuje systémové správy s používateľskými správami pre nekompatibilné modely. Ak sa tento problém stále vyskytuje vo v3.x+, nahláste ho. - Rola
developernebola rozpoznaná — Vyriešené vo v1.x; pre poskytovateľov iných než OpenAI sa automaticky konvertuje nasystem. Ak sa tento problém stále vyskytuje vo v3.x+, nahláste ho. json_schemanefunguje s Gemini — Vyriešené vo v1.x;response_formatsa teraz konvertuje naresponseMimeType+responseSchemaGemini. Ak sa tento problém stále vyskytuje vo v3.x+, nahláste ho.
- Automatické obmedzenie frekvencie sa vzťahuje iba na poskytovateľov s API kľúčom (nie na OAuth/predplatné)
- Overte, či je v časti Nastavenia → Odolnosť → Profily poskytovateľov povolené automatické obmedzenie frekvencie
- Skontrolujte, či poskytovateľ vracia stavové kódy
429alebo hlavičkyRetry-After
Profily poskytovateľov podporujú tieto nastavenia:
- Základné oneskorenie — Počiatočný čas čakania po prvom zlyhaní (predvolene: 1s)
- Maximálne oneskorenie — Horný limit času čakania (predvolene: 30s)
- Násobiteľ — Miera zvýšenia oneskorenia pri každom po sebe nasledujúcom zlyhaní (predvolene: 2x)
Keď veľa súbežných požiadaviek zasiahne poskytovateľa s obmedzenou frekvenciou, OmniRoute používa mutex + automatické obmedzenie frekvencie na serializáciu požiadaviek a zabránenie kaskádovým zlyhaniam. Pre poskytovateľov s API kľúčom je to automatické.
Príznaky:
- Koncový bod na dokončenia chatu vracia opakovateľnú odpoveď
503, ktorej chybový kód jechat_admission_busy. - Odpoveď obsahuje
Retry-After. Od verzie #12135 sa hodnota odvodzuje od pozorovaného vyťaženia — použije sa väčšia hodnota z časového oknaOMNIROUTE_CHAT_ADMISSION_QUEUE_MS, počas ktorého už požiadavka čakala, a času, počas ktorého sú držané aktuálne prenájmy pre náročné požiadavky — zaokrúhlená nahor na celé sekundy a obmedzená na 60. Pri nevyťaženej bráne zachováva historické minimá: 2 sekundy pre cestu založenú na bajtoch, 1 sekundu pre cestu založenú na štruktúre (ktorá obsahuje ajreason: "structure_limit"). - Môže sa to stať, kým stále prebieha iný náročný chat alebo dlhotrvajúca streamovaná odpoveď.
Telo odpovede založenej na bajtoch je:
{
"error": {
"message": "Chat admission capacity is temporarily unavailable. Retry shortly.",
"type": "server_error",
"code": "chat_admission_busy"
}
}Odpoveď založená na štruktúre používa rovnaký typ a kód so správou
Local chat admission capacity is busy for this structurally heavy request; upstream provider routing was not attempted. Retry shortly.
a reason: "structure_limit".
Pri predvolených prahových hodnotách je požiadavka štrukturálne náročná, ak obsahuje aspoň 200 správ,
aspoň 64 nástrojov alebo aspoň 32,000 odhadovaných tokenov, prípadne ak obmedzený odhad štruktúry
vyčerpá svoje limity 10,000 navštívených uzlov alebo hĺbku 12.
Príčina: Ide o zámerné odľahčenie záťaže v rámci OmniRoute, nie o zlyhanie upstreamového poskytovateľa. Každý proces používa lokálnu ochranu procesu na rezerváciu obmedzenej kapacity pre náročné požiadavky ešte pred uchovaním a spracovaním veľkého tela požiadavky. Prenájom pre náročnú požiadavku zostáva držaný počas celej životnosti SSE odpovede.
#503-fanout: pred touto opravou ochrana obmedzovala súbežnosť pevným POČTOM požiadaviek
(OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT, predvolene 1) bez ohľadu na pamäť hostiteľa, takže
rozvetvenie kódovacích agentov (viacero subagentov/CLI, telá bežne > 256 KB) viedlo k efektívnej
súbežnosti ~1 a chybám 503 pri úplne bežnom zaťažení. Ochrana sa teraz automaticky prispôsobuje: riadi sa
automaticky odvodeným BAJTOVÝM rozpočtom príjmu (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES) stanoveným podľa
skutočného pamäťového limitu procesu a zároveň zohľadňuje živý signál tlaku na zdroje — takže
odmieta požiadavky iba vtedy, keď je hostiteľ skutočne pod tlakom na pamäť, nie iba preto, že naraz
prišlo viac než jedna náročná požiadavka. Starý limit počtu (OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT) sa
naďalej rešpektuje, ale iba ak ho explicitne nastavíte.
Keď je kapacita obsadená, náročná požiadavka najprv čaká až
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS (predvolene 2000, hodnota 0 čakanie zakáže), kým sa uvoľní miesto,
a až potom vráti opakovateľnú chybu 503. Obmedzené čakanie existuje preto, aby klienti typu agent
(OpenCode, Claude Code, Cursor), ktorí súbežne rozvetvujú náročné podpožiadavky, serializovali nápor
namiesto vyčerpania celého rozpočtu opakovaných pokusov okamžitými odmietnutiami a zlyhania uprostred úlohy.
Aktuálne vyťaženie prenájmov pre náročné požiadavky, určený bajtový rozpočet a aktuálna závažnosť tlaku sú
dostupné na GET /api/monitoring/health → chatAdmission (inflightBytes, maxInflightBytes,
budgetSource, pressureSeverity, countCapEnabled) — skontrolujte ich skôr, než zmeníte akúkoľvek premennú prostredia.
Nastavenia → Odolnosť → Front požiadaviek → Súbežné požiadavky toto neovláda; toto nastavenie
riadi samostatný mechanizmus frontu požiadaviek poskytovateľa.
Oprava:
- Najprv požiadavku zopakujte. Klienti by mali rešpektovať
Retry-Aftera používať odstup namiesto okamžitého opakovania požiadavky. - Pred ladením čohokoľvek skontrolujte
/api/monitoring/health→chatAdmission.countCapEnabled: falsea veľkorysá hodnotamaxInflightBytesznamenajú, že automaticky odvodený rozpočet už funguje správne; hodnotapressureSeveritynastavená nahigh/criticalznamená, že hostiteľ má skutočne nedostatok pamäte — to nemožno opraviť premennou prostredia pre prijímanie požiadaviek, ale vyžaduje si to viac RAM alebo menšiu pracovnú záťaž. - Iba ak
/api/monitoring/healthukazuje, že automaticky odvodený rozpočet je pre vášho hostiteľa skutočne príliš malý (čo je zriedkavé — už sa škáluje od kontajnerov až po bare-metal), prepíšte ho priamo pomocouOMNIROUTE_CHAT_MAX_INFLIGHT_BYTESnamiesto návratu k zastaranému limitu počtu požiadaviek.
Autoritatívne nastavenia prijímania požiadaviek nájdete v referenčnej dokumentácii premenných prostredia.
Niektorí používatelia OmniRoute umiestňujú bránu pred RAG alebo agentové systémy. V takýchto konfiguráciách sa často objavuje zvláštny jav: OmniRoute vyzerá byť v poriadku (poskytovatelia sú dostupní, smerovacie profily fungujú, žiadne upozornenia na obmedzenie frekvencie požiadaviek), no konečná odpoveď je napriek tomu nesprávna.
V praxi tieto incidenty zvyčajne pochádzajú z nadväzujúceho RAG pipeline, nie zo samotnej brány.
Ak chcete používať spoločnú terminológiu na opis týchto zlyhaní, môžete použiť WFGY ProblemMap, externý textový zdroj s licenciou MIT, ktorý definuje šestnásť opakujúcich sa vzorov zlyhaní RAG / LLM. Na vysokej úrovni zahŕňa:
- odklon pri vyhľadávaní a narušené hranice kontextu
- prázdne alebo zastarané indexy a vektorové úložiská
- nesúlad embeddingov a sémantiky
- problémy so zostavovaním promptov a kontextovým oknom
- kolaps logiky a príliš sebavedomé odpovede
- zlyhania dlhých reťazcov a koordinácie agentov
- odklon pamäte a rolí medzi viacerými agentmi
- problémy s poradím nasadenia a inicializácie
Myšlienka je jednoduchá:
- Pri vyšetrovaní nesprávnej odpovede zaznamenajte:
- úlohu a požiadavku používateľa
- trasu alebo kombináciu poskytovateľov v OmniRoute
- akýkoľvek RAG kontext použitý v nadväzujúcom spracovaní (vyhľadané dokumenty, volania nástrojov atď.)
- Priraďte incident k jednému alebo dvom číslam vo WFGY ProblemMap (
No.1…No.16). - Uložte číslo vo svojom dashboarde, prevádzkovej príručke alebo systéme na sledovanie incidentov vedľa protokolov OmniRoute.
- Pomocou príslušnej stránky WFGY rozhodnite, či potrebujete zmeniť svoj RAG systém, vyhľadávací mechanizmus alebo stratégiu smerovania.
Úplný text a konkrétne postupy nájdete tu (licencia MIT, iba text):
Ak za OmniRoute neprevádzkujete RAG alebo agentové pipeline, môžete túto časť ignorovať.
Problémy špecifické pre vydanie v3.8.0 a ich aktuálne náhradné riešenia. Ak bude oprava zahrnutá v neskoršej opravnej verzii, príslušná položka sa aktualizuje alebo odstráni.
Príznaky:
- „Devin CLI sa nenašlo“ alebo „autentifikácia zlyhala“ pri spúšťaní nástrojov založených na Devin
- Kontrola prostredia CLI hlási
installed=false
Príčiny:
CLI_DEVIN_BINodkazuje na cestu, ktorá neexistuje- Devin CLI nie je na hostiteľovi nainštalované
Oprava:
- Nainštalujte Devin CLI pre svoju platformu
- Nastavte
CLI_DEVIN_BIN=/usr/local/bin/devin(alebo skutočnú cestu) v.env - Reštartujte OmniRoute a zopakujte test cez Dashboard → Nástroje CLI
Príznaky:
- Model zostáva uvedený v režime ochladzovania aj po uplynutí času platnosti
- Požiadavky pri kombinovanom smerovaní model stále preskakujú, hoci časová značka je už v minulosti
Manuálne obnovenie:
- Dashboard: Nastavenia → Ochladzovanie modelov → na príslušnej karte kliknite na Znova povoliť
- API:
DELETE /api/resilience/model-cooldownss hlavičkami autentifikácie správy
Príznaky:
- Chyba 403 pri testovaní pripojenia k poskytovateľovi Command Code
- Po novom pridaní sa na karte poskytovateľa zobrazuje „neautorizované“
Príčina: Tok OAuth sa nedokončil (spätné volanie nebolo prijaté alebo token nebol uložený).
Oprava:
- Spustením
omniroute providersz CLI znova aktivujte tok OAuth alebo - Znova spustite OAuth cez Dashboard → Poskytovatelia → Command Code → Znova pripojiť
Príznaky:
- Veľmi krátke alebo okamžité ochladzovanie ModelScope po malej dávke požiadaviek
- Kombinované smerovanie preskočí ModelScope skôr, než sa očakáva
Príčina: ModelScope odosiela hlavičky Retry-After špecifické pre poskytovateľa. v3.8.0 obsahuje špecializované spracovanie týchto hlavičiek, takže staršie verzie ich nesprávne interpretujú ako všeobecné indikátory obmedzenia frekvencie požiadaviek.
Oprava:
- Uistite sa, že používate v3.8.0 alebo novšiu verziu
- Skontrolujte, či je prepínač
useUpstream429BreakerHintspovolený v časti Nastavenia → Odolnosť
Príznaky:
- Chyba 401 pri každej požiadavke na WebSocket most Codex/Responses pri spustení na vzdialenom produkčnom hostiteľovi
- Nadviazanie spojenia s WebSocket mostom sa ukončí ihneď po pripojení
Príčina: V produkčnom prostredí chýba premenná prostredia OMNIROUTE_WS_BRIDGE_SECRET.
Oprava:
- Vygenerujte náhodný tajný kľúč:
openssl rand -hex 32 - Nastavte
OMNIROUTE_WS_BRIDGE_SECRET=<random-secret>v prostredí produkčného servera (a v každom klientovi, ktorý komunikuje s mostom) - Reštartujte OmniRoute
Príznaky:
- Zaznamenané upozornenie:
background mode degraded to synchronous - Požiadavka s
background: truevráti normálnu synchrónnu odpoveď namiesto identifikátora úlohy na pozadí
Príčina: v3.8.0 zámerne degraduje background: true v Responses API na synchrónne vykonávanie a zároveň vygeneruje upozornenie. Úplné asynchrónne vykonávanie na pozadí je plánované do budúcnosti.
Oprava:
- Upravte klienta tak, aby volanie vykonával bez
background, alebo - Počkajte na neskoršie vydanie, ktoré bude obsahovať úplný asynchrónny režim na pozadí (sledujte zoznam zmien)
Ak CLI zobrazí ⚠ Server did not respond within 60s, ale server v skutočnosti
funguje, limit sondy pripravenosti je pre vaše prostredie príliš krátky.
Bežne sa to stáva v systéme Windows (antivírus, sledovanie súborového systému) alebo v kontajneroch s náročnými úlohami pri spustení.
Riešenie — zvýšte časový limit:
# Prostredníctvom premennej prostredia (platí aj pri ďalších spusteniach):
export OMNIROUTE_READY_TIMEOUT_MS=180000 # 3 minúty
omniroute serve
# Prostredníctvom príznaku CLI (jednorazovo):
omniroute serve --ready-timeout 180000Predvolená hodnota je 60 000 ms (60 s). Upozornenie má iba informatívny charakter; server pokračuje v spúšťaní na pozadí a po dokončení spustenia bude dostupný.
Úplné podrobnosti o OMNIROUTE_READY_TIMEOUT_MS nájdete v súbore
docs/reference/ENVIRONMENT.md.
- Problémy na GitHube: github.com/diegosouzapw/OmniRoute/issues
- Architektúra: Interné podrobnosti nájdete v súbore
docs/architecture/ARCHITECTURE.md - Referenčná dokumentácia API: Všetky koncové body nájdete v súbore
docs/reference/API_REFERENCE.md - Panel stavu: Aktuálny stav systému nájdete v časti Dashboard → Health
- Prekladač: Na ladenie problémov s formátom použite Dashboard → Translator