🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 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 · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Za korisnike: Tražite brza rješenja? Pogledajte Brzi pregled u nastavku.
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 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 · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Uobičajeni problemi i rješenja za OmniRoute.
Novi ste u OmniRouteu? Počnite ovdje — ovo rješava 90% problema:
| Vidim ovo | Šta to znači | Šta uraditi |
|---|---|---|
| "Nije moguće povezivanje" | OmniRoute nije pokrenut | Pokrenite omniroute ili docker restart omniroute |
| "Nevažeći API ključ" | Vaš ključ je pogrešan ili je istekao | Ponovo kopirajte ključ s web-stranice pružaoca usluge |
| "Ograničenje brzine premašeno" | Šaljete previše zahtjeva | Sačekajte 1 minutu ili koristite model: "auto" za automatski prelazak na rezervnu opciju |
| "Kvota premašena" | Iskoristili ste svoju besplatnu/plaćenu kvotu | Povežite više pružalaca usluga ili koristite besplatne pružaoce (Kiro, Pollinations) |
| "Spori odgovori" | Pružalac usluge je zauzet ili geografski udaljen | Koristite model: "auto/fast" ili povežite bržeg pružaoca usluge (Groq, Cerebras) |
| "Korišten je pogrešan pružalac usluge" | auto je odabrao drugog pružaoca usluge |
To je normalno! auto bira najboljeg. Nametnite određenog pružaoca pomoću model: "openai/gpt-4o" |
| "502 Bad Gateway" | Pružalac usluge nije dostupan | Sačekajte i pokušajte ponovo ili koristite model: "auto" za promjenu pružaoca usluge |
| "401 Unauthorized" | Vaši pristupni podaci su pogrešni | Provjerite svoj API ključ ili se ponovo autentificirajte putem OAutha |
| "omniroute nije prepoznat" | U Windows PATH-u nedostaju globalni node moduli | Dodajte svoj npm globalni prefiks u Windows PATH. Pronađite ga pomoću npm config get prefix. |
| "429 Too Many Requests" | Brzina zahtjeva je ograničena | Sačekajte 1 minutu ili povežite više pružalaca usluga |
I dalje imate problem? Pogledajte detaljno otklanjanje poteškoća u nastavku ili pitajte na Discordu.
Simptom: Kada koristite model: "auto" s besplatnim pružaocima usluga ili onima bez autentifikacije (opencode, auggie itd.), povremeno dobijate HTTP 429, 400 ili 401 umjesto odgovora. Zahtjevi uspijevaju kada nekoliko trenutaka kasnije ponovo pošaljete isti upit, ali automatizacija (cron poslovi, agenti, skripte) prekida se pri prvom neuspjehu.
Osnovni uzrok: Tri nezavisna načina neuspjeha međusobno se nadovezuju:
- Ograničenje brzine pružaoca usluge (
429): Besplatni nivoi mogu nametnuti kvotu po vremenskom intervalu. Nagli porast paralelnih poziva je iscrpljuje, pa se sljedeći zahtjev odbija dok se vremenski interval ne resetuje. - Neispravan model u direktnom prosljeđivanju (
400/401):auto/*skupovi mogu uključivati modele za direktno prosljeđivanje izopencodekoji su registrovani u katalogu, ali nemaju aktivne pristupne podatke (npr.oc/north-mini-code-free→401). Automatski usmjerivač pokušava koristiti jedan od njih, ne uspijeva, a greška se prosljeđuje prije nego što se aktivira rezervna opcija. - Pojačavanje zbog konkurentnosti (
429pod opterećenjem): Kada više agentskih/cron sesija istovremeno pristupi opcijiauto, ukupna stopa zahtjeva premašuje ono što besplatni pružaoci usluga mogu podnijeti, pa se legitimni pozivi označavaju kao zloupotreba.
Provjereno rješenje (prema izvještaju zajednice, 2026-08-10): podesite tri varijable okruženja tako da rotacija, konkurentnost i rezervne opcije apsorbuju promjenjivost besplatnog nivoa umjesto da zbog nje prestanu raditi:
export OMNIROUTE_ROTATE_ON_400=true # pređi na drugi model/pružaoca usluge pri 400/401 (preskače neispravne modele za direktno prosljeđivanje)
export OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT=4 # izričito ograničenje prihvatanja zahtjevnih zadataka (zadano nije postavljeno: nema ograničenja broja zahtjeva, pogledajte napomenu ispod)
export OMNIROUTE_CHAT_ADMISSION_QUEUE_MS=5000 # duže ograničeno čekanje na kapacitet za zahtjevne zadatke umjesto trenutnog 503 koji omogućava ponovni pokušajPostavite ih u okruženju OmniRoute procesa (daemon, npr. putem LaunchAgent plist datoteke ili systemctl edit), a zatim ponovo pokrenite OmniRoute. Oznaka za rotaciju je pojedinačna postavka s najvećim učinkom: pretvara potpuni neuspjeh u transparentan ponovni pokušaj kod ispravnog pružaoca usluge u skupu.
Napomena: OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT ograničava broj zahtjevnih zahtjeva — onih s dugim kontekstom — koji se izvršavaju istovremeno; ovo ograničenje predstavlja ulaznu kontrolu, a ne ograničivač brzine pružaoca usluge. Ažuriranje #503-fanout: ova varijabla više nije zadano postavljena (sada se primjenjuje samo kada je izričito konfigurirana, kao iznad) — prihvatanje zahtjevnih zahtjeva umjesto toga kontroliše automatski izveden budžet bajtova (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES) koji se samostalno prilagođava stvarnom memorijskom ograničenju hosta, tako da bi nova implementacija trebala imati znatno manje odbijanja 503 chat_admission_busy bez ikakvog postavljanja ove varijable; njeno izričito postavljanje ovdje i dalje radi tačno onako kako je dokumentirano. Izričito zadana ograničenja budžeta bajtova svode se na raspon od 8 MiB do 2 GiB. Greška 413 body_exceeds_budget nije privremena: povećajte taj budžet bajtova, smanjite OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES ili povećajte memorijsko ograničenje procesa. Odbacivanje inflight_bytes_budget predstavlja privremeno nadmetanje za resurse i i dalje dopušta ponovni pokušaj. Ograničavanjem brzine po pružaocu usluge (open-sse/services/rateLimitManager.ts) zasebno upravljaju RATE_LIMIT_MAX_WAIT_MS, RATE_LIMIT_MAX_QUEUE_DEPTH i RATE_LIMIT_AUTO_ENABLE — pogledajte .env.example.
Kako provjeriti da li radi: pokrenite svoj agent/cron dvaput u kratkom vremenskom razmaku i potvrdite da su oba pokretanja uspješna. Prije ispravke, drugo pokretanje obično vraća 429/401. Nakon ispravke, neuspjeli pokušaji (ako ih ima) automatski se ponavljaju i poziv se dovršava. Također možete pokrenuti curl /monitoring/health i pratiti polje rateLimitedUntil na konekcijama pružalaca usluga te circuitBreakers.providerBreakers[].state za pogođene pružaoce usluga — stanje je jedno od CLOSED, DEGRADED, OPEN ili HALF_OPEN (pogledajte src/shared/utils/circuitBreaker.ts), a pružalac usluga kod kojeg se greške nastavljaju preći će iz CLOSED → DEGRADED → OPEN prije nego što period za resetiranje omogući probni zahtjev (HALF_OPEN).
Ako i dalje vidite 429: aktivni račun za tog pružaoca usluga zaista je iscrpio svoju kvotu (ne samo ograničenje brzine zahtjeva). Dodajte drugi račun za istog pružaoca usluga na OmniRoute kontrolnoj ploči → Providers → Accounts ili uključite drugog besplatnog pružaoca usluga (npr. routeway, auggie). Rotacija pomaže samo kod privremenih grešaka vezanih za ograničenje brzine zahtjeva/400/401; potpuno iscrpljena kvota zahtijeva druge pristupne podatke ili drugog pružaoca usluga.
Ako vidite 403 na vision modelima (auto/vision, bazaarlink/*): povezani račun nema plaćeni paket koji uključuje vision mogućnosti ili API ključ nema dovoljna ovlaštenja. Na kontrolnoj ploči pružaoca usluga provjerite uključuje li opseg ključa vision/multimodal mogućnosti ili povežite račun s plaćenim paketom i zadržite ga kao cilj za vision modele.
Kada pokrenete npm install -g omniroute, možete vidjeti veliki broj upozorenja poput npm warn ERESOLVE, obavijesti o peer zavisnostima i poruke deprecated. Ona su očekivana i bezopasna. Instalacija je uspješna ako u izlazu vidite added <N> packages.
Da biste potisnuli upozorenja o razrješavanju peer zavisnosti, koristite podržani način instalacije za OmniRoute:
npm install -g omniroute --legacy-peer-deps--legacy-peer-deps potiskuje samo ERESOLVE i obavijesti o peer zavisnostima. Obavijesti o zastarjelosti ostaju vidljive jer dolaze iz tranzitivnih paketa trećih strana; one ne znače da instalacija nije uspjela.
Upozorenja potiču od zastarjelih raspona peer zavisnosti u paketima trećih strana koje OmniRoute ne kontroliše:
marked-terminalzahtijevamarked >=1 <16, pronađen jemarked@18— u praksi radi bez problema; uzvodni peer raspon je samo zastario.deprecated prebuild-install@7.1.3— tranzitivni pomoćni alat za preuzimanje nativnih binarnih datoteka. Ne koristi se za instalaciju fiksirane transportne spregewreq-jsi ne znači da postavljanje transporta pružaoca web kolačića nije uspjelo.
Nije potrebna nikakva radnja — upozorenja se ne mogu u potpunosti utišati bez račvanja uzvodnih paketa.
Ako Gemini Web zahtjev vrati 503 s porukom da Playwright Chromium
nije instaliran, npm paket je prisutan, ali binarna datoteka preglednika nedostaje.
Playwright namjerno drži preuzimanja preglednika odvojena od instalacije npm
paketa, pa je ovaj odgovor očekivan dok se preglednik ne instalira.
Za globalnu npm instalaciju instalirajte Chromium iz direktorija OmniRoute paketa kako bi predmemorija preglednika pripadala istoj Playwright instalaciji:
cd "$(npm root -g)/omniroute"
npx playwright install chromiumPonovo pokrenite OmniRoute nakon instalacije, a zatim ponovite Gemini Web zahtjev. Ako
pokrećete OmniRoute iz Docker slike, koristite -web sliku (ili cilj izgradnje runner-web),
koja uključuje Chromium i njegove zavisnosti; osnovna slika ih
ne uključuje.
| Problem | Rješenje |
|---|---|
| Prva prijava ne radi | Postavite INITIAL_PASSWORD u .env (nema tvrdo kodirane zadane vrijednosti) |
| Kontrolna tabla se otvara na pogrešnom portu | Postavite PORT=20128 i NEXT_PUBLIC_BASE_URL=http://localhost:20128 |
| Dnevnici se ne zapisuju na disk | Postavite APP_LOG_TO_FILE=true i provjerite je li omogućeno bilježenje dnevnika poziva |
| EACCES: pristup odbijen | Postavite DATA_DIR=/path/to/writable/dir da biste nadjačali ~/.omniroute |
| Strategija usmjeravanja se ne čuva | Ažurirajte na najnovije izdanje v3.x (ispravka Zod sheme za trajno čuvanje postavki isporučena je u ranijim verzijama) |
| Pad pri prijavi / prazna stranica | Provjerite verziju Node.js — pogledajte Kompatibilnost s Node.js ispod |
dlopen / slice is not valid mach-o file (macOS) |
Pokrenite cd $(npm root -g)/omniroute/app && npm rebuild better-sqlite3 && omniroute — pogledajte ponovnu izgradnju nativnog modula za macOS ispod |
| Proxy „fetch failed“ | Provjerite je li konfiguracija proxyja postavljena na ispravnom nivou — pogledajte Probleme s proxyjem ispod |
Docker curl: (56) Recv failure: Connection reset by peer |
Povezivanje Docker porta možda završava na IPv6. Koristite -p 127.0.0.1:20128:20128 da prisilite IPv4 ili testirajte pomoću curl -4. Pogledajte Docker IPv6 ispod |
Antivirus stavlja README.md u karantin |
Lažno pozitivan rezultat — pogledajte Lažno pozitivne rezultate antivirusa ispod |
| Kaspersky označava Desktop aplikaciju kao trojanca | Bihevioralno lažno pozitivan rezultat na nepotpisanom instalacijskom programu — pogledajte Lažno pozitivne rezultate antivirusa ispod |
Ovo je lažno pozitivan rezultat. Ništa nije zaraženo i nije potrebno ništa poduzimati.
Avast i AVG koriste heuristiku koja označava obične tekstualne/Markdown datoteke koje sadrže mnogo
linkova nalik HTTP zahtjevima. OmniRouteov README.md isporučuje se unutar npm paketa (naveden je
u package.json → files), pa se pri globalnoj instalaciji smješta u node_modules/omniroute/README.md
— a sadrži oko 15 primjera http://localhost:20128/... (MCP HTTP/SSE krajnje tačke, A2A
.well-known URL i curl isječke). Ta gustoća linkova dovoljna je da aktivira heuristiku.
Ako se ovo počelo dešavati tek nedavno: vrsta datoteke se nije promijenila. README je proširen
tabelom krajnjih tačaka (dodani su MCP HTTP + SSE + A2A) i dodatnim curl primjerima, zbog čega
je premašen prag.
Datoteka je neaktivna dokumentacija bez ikakvog izvršnog sadržaja. Možete je sigurno vratiti iz karantina.
Šta učiniti:
- Zaustavite obavještenja — izuzmite instalacijski direktorij u svom antivirusnom programu
(Avast: Postavke → Izuzeci), dodajući putanju do globalnog
node_modulesi/ili OmniRoute direktorij podataka (~/.omniroute/). - Prijavite lažno pozitivan rezultat — https://www.avast.com/false-positive-file-form.php,
prilažući
README.mdiz karantina. Ovo je rješenje koje pomaže svima jer je riječ o heuristici proizvođača koja pretjerano reaguje na tekstualnu datoteku.
Zašto ovo ne „popravljamo“ s naše strane: svi primjeri koriste http://localhost, a
localhost ne može koristiti https bez poteškoća sa samopotpisanim certifikatima. Narušavanje
dokumentacije radi zaobilaženja heuristike jednog proizvođača štetilo bi svakom čitaocu samo
da bi se udovoljilo grešci skenera.
Ovo je lažno pozitivan rezultat bihevioralne heuristike. Ništa nije zaraženo. Kasperskyjev
prefiks PDM: znači da procjena dolazi iz njegovog modula Proactive Defense Module (System Watcher),
koji procjenjuje šta instalacijski program radi umjesto da ga poredi s poznatim zlonamjernim
softverom. Kada se aktivira, Kaspersky „vraća unazad“ cijelu instalaciju — brišući datoteke koje
je već zapisao — pa aplikacija na kraju bude neispravna ili nedostaje.
Datoteke koje označava standardni su dijelovi deklariranih zavisnosti otvorenog koda koje se isporučuju s aplikacijom za radnu površinu, na primjer:
resources/app/.build/next/node_modules/playwright-<hash>/lib/…/agentParser.jsiworkerProcessEntry.js— Playwright, biblioteka za automatizaciju preglednika koja se koristi za prijavu kod pružaoca usluga unutar aplikacije i razgovor koji se izvršava putem preglednika.resources/app/.build/next/node_modules/@wreq-js/binding-win32-<arch>-msvc-<hash>/wreq-js.win32-<arch>-msvc.node— fiksirana nativnawreq-jsveza koja se koristi za HTTP s otiskom preglednika kod pružalaca usluga zasnovanih na web-kolačićima (<arch>jex64iliarm64).
Zašto se aktivira: Windows instalacijski program još nije digitalno potpisan, pa
nepotpisani NSIS instalacijski program nema nikakvu reputaciju i bihevioralne heuristike rade
s maksimalnom agresivnošću. U kombinaciji s uključenim nativnim DLL-om i stotinama .js
datoteka zapisanih u %LOCALAPPDATA%\Programs\OmniRoute (uključujući direktorije paketa sa
sufiksima heševa iz samostalne Next.js verzije), to je dovoljno da aktivira heuristiku.
Potpisivanje koda je planirano; dok se ne uvede, ovo se može ponavljati s novim izdanjima.
Šta učiniti:
- Prvo provjerite preuzetu datoteku (time se isključuje mogućnost neovlašteno izmijenjene
datoteke). Svako izdanje objavljuje
latest.yml, čije poljesha512(base64) obuhvata instalacijski programOmniRoute.Setup.<version>.exe. U PowerShellu, iz direktorija koji sadrži instalacijski program:Izlaz se mora podudarati s$b = [System.Security.Cryptography.SHA512]::Create().ComputeHash( [System.IO.File]::ReadAllBytes("$PWD\OmniRoute.Setup.<version>.exe")) [Convert]::ToBase64String($b)
latest.yml→sha512. Ako se ne podudara, izbrišite datoteku i ponovo je preuzmite isključivo sa stranice GitHub izdanja. - Vratite + izuzmite — vratite poništene stavke iz karantina i dodajte izuzetak za
%LOCALAPPDATA%\Programs\OmniRoute(Kaspersky → Postavke → Prijetnje i izuzeci), a zatim ponovo instalirajte. - Prijavite lažno pozitivan rezultat — https://opentip.kaspersky.com/. FP prijave koje pošalju korisnici zaista ubrzavaju dodavanje na listu dozvoljenih.
Uzrok: Koristite verziju Node.js-a koja nije unutar sigurnog raspona izvršnog okruženja koji je odobrio OmniRoute. Najčešći slučaj je korištenje starije revizije Node.js-a 22 ili 24 koja je ispod minimalne sigurnosne revizije koju OmniRoute zahtijeva.
Simptomi:
- Stranica za prijavu prikazuje prazan ekran ili serversku grešku
- Konzola prikazuje
Error: Module did not self-registerili slične greške izvornog povezivanja - Stranica za prijavu prikazuje narandžasti baner upozorenja s vašom verzijom Node.js-a ako je izvršno okruženje izvan podržane sigurnosne politike
Rješenje:
- Instalirajte podržano Node.js LTS izdanje (preporučeno: Node.js 24.x):
nvm install 24 nvm use 24
- Provjerite svoju verziju:
node --versiontreba prikazativ24.0.0ili noviju verziju u okviru 24.x LTS linije - Ponovo instalirajte OmniRoute:
npm install -g omniroute - Ponovo pokrenite:
omniroute
Podržane sigurne verzije:
>=22.22.2 <23ili>=24.0.0 <27. Node.js 24.x LTS (Krypton) i Node.js 26 su u potpunosti podržani.
Uzrok: npm v11 (isporučuje se uz Node.js 24+) prema zadanim postavkama blokira instalacijske skripte za opcionalne
zavisnosti. Budući da je better-sqlite3 naveden u optionalDependencies
i zahtijeva izvornu kompilaciju (node-gyp rebuild), npm ga prešutno preskače.
Simptomi:
- Server se ruši pri pokretanju uz poruku
Cannot find module 'better-sqlite3' ls node_modules/better-sqlite3prikazuje "No such file or directory"npm ls better-sqlite3prikazuje(empty)
Rješenje:
- Odobrite instalacijske skripte i ponovo instalirajte:
npm approve-scripts better-sqlite3 npm install
- Ili ručno instalirajte unaprijed kompajliranu verziju:
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
- Provjerite radi li:
node -e "require('better-sqlite3')(':memory:').close(); console.log('OK')"
Uzrok: Nakon globalne instalacije pomoću npm install -g omniroute, izvorna binarna datoteka better-sqlite3 unutar paketa možda je kompajlirana za arhitekturu ili Node.js ABI koji se razlikuje od onoga koji se lokalno izvršava. Ovo je uobičajeno na macOS-u (i na Apple Silicon i na Intel platformama) kada se unaprijed kompajlirana binarna datoteka ne podudara s vašim okruženjem.
Simptomi:
- Server se odmah ruši pri pokretanju uz grešku
dlopen - Greška sadrži
slice is not valid mach-o file - Potpuni primjer:
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)
Rješenje — ponovo kompajlirajte za svoje lokalno okruženje (nije potrebno preći na stariju verziju Node.js-a):
cd $(npm root -g)/omniroute/app
npm rebuild better-sqlite3
omnirouteNapomena: Ovo ponovo kompajlira izvorno povezivanje za vašu lokalnu verziju Node.js-a i CPU arhitekturu, čime se rješava nepodudaranje binarnih datoteka. Zvanično podržani raspon izvršnog okruženja je
>=22.22.2 <23ili>=24.0.0 <27(SUPPORTED_NODE_RANGEusrc/shared/utils/nodeRuntimeSupport.ts, usklađen s poljemenginesu datotecipackage.json). Node.js 24.x LTS (Krypton) i Node.js 26 u potpunosti su podržani uzbetter-sqlite3v12.x.
Uzrok: Krajnja tačka za validaciju API ključa (POST /api/providers/validate) ranije je zaobilazila konfiguraciju proxyja, što je uzrokovalo greške u okruženjima koja zahtijevaju usmjeravanje putem proxyja.
Rješenje (v3.5.5+): Ovo je sada ispravljeno. Validacija pružatelja usmjerava se kroz runWithProxyContext, automatski poštujući postavke proxyja na nivou pružatelja i globalne postavke proxyja.
Uzrok: Pozadinsko osvježavanje OAuth tokena nije određivalo konfiguraciju proxyja za svaku vezu.
Rješenje (v3.5.5+): Planer provjere ispravnosti tokena sada određuje konfiguraciju proxyja za svaku vezu prije pokušaja osvježavanja. Ažurirajte na v3.5.5+.
Uzrok: Na Node.js 22, dispečer iz undici@8 nije kompatibilan s ugrađenom Nodeovom implementacijom funkcije fetch().
Rješenje (v3.5.5+): OmniRoute sada koristi vlastitu funkciju fetch() paketa undici kada je aktivan proxy dispečer, čime se osigurava dosljedno ponašanje. Ažurirajte na v3.5.5+.
Uzrok: MITM proxy i njegov CA certifikat instaliraju se u okruženje u kojem se OmniRoute izvršava. Pod WSL-om to okruženje je Linux gost, dok se AI desktop aplikacije (Kiro, Trae, Copilot, Zed, …) izvršavaju na Windows hostu. Aplikacije na hostu ne vjeruju spremištu certifikata gosta i ne usmjeravaju se kroz sistemski proxy gosta, pa presretanje desktop aplikacija tamo nije aktivno.
Preporuka: Pokrenite OmniRoute izvorno na istom operativnom sistemu kao i desktop aplikacije koje želite presretati (Windows za Windows aplikacije; analogno tome macOS/Linux). Zadržavanje OmniRoutea unutar WSL-a uz ciljanje aplikacija na hostu zahtijeva ručno dodavanje generiranog CA certifikata kao pouzdanog na Windows hostu i usmjeravanje mrežnih/proxy postavki svake aplikacije na hostu prema WSL proxy krajnjoj tački — takva konfiguracija nije podržana i nepouzdana je.
Uzrok: Kvota pružatelja je iscrpljena.
Rješenje:
- Provjerite praćenje kvote na kontrolnoj ploči
- Koristite kombinaciju s rezervnim nivoima
- Prebacite se na jeftiniji/besplatni nivo
Uzrok: Pretplatnička kvota je iscrpljena.
Rješenje:
- Dodajte rezervnu opciju:
cc/claude-opus-4-6 → glm/glm-4.7 → if/qwen3.8-max-preview - Koristite GLM/MiniMax kao jeftinu rezervnu opciju
OmniRoute automatski osvježava tokene. Ako problemi i dalje postoje:
- Kontrolna ploča → Pružatelj → Ponovo poveži
- Izbrišite i ponovo dodajte vezu s pružateljem
Uzrok: Kirova pozadinska usluga dozvoljava samo jednu aktivnu sesiju po registraciji OIDC klijenta. Kada dva računa dijele isti registrirani klijent (veze uvezene prije v3.8.0), osvježavanje tokena jednog računa poništava token za osvježavanje drugog računa.
Rješenje (v3.8.0+): Ponovo uvezite pogođene veze. Počevši od v3.8.0, svaka nova Kiro veza kreirana putem opcije Uvezi token, Društvena prijava putem Googlea/GitHuba ili Automatski uvoz automatski registrira vlastiti namjenski OIDC klijent. Veza je stoga potpuno izolirana i osvježavanje jednog računa ne utječe ni na jedan drugi račun.
Veze koje su uvezene prije v3.8.0 nemaju registraciju klijenta po vezi. Te veze i dalje koriste zajedničku krajnju tačku za osvježavanje društvene autentifikacije. Da biste omogućili izolaciju, izbrišite staru vezu putem Kontrolna ploča → Pružatelji i ponovo je dodajte putem bilo kojeg od tri toka uvoza.
Za potpune detalje i detaljna uputstva za dodavanje dva Kiro računa jednog pored drugog,
pogledajte docs/guides/KIRO_SETUP.md.
- Provjerite da
BASE_URLupućuje na vašu pokrenutu instancu (npr.http://localhost:20128) - Provjerite da
CLOUD_URLupućuje na vašu krajnju tačku u oblaku (npr.https://omniroute.dev) - Održavajte vrijednosti
NEXT_PUBLIC_*usklađenim s vrijednostima na strani servera
Simptom: Unexpected token 'd'... na krajnjoj tački u oblaku za pozive bez streaminga.
Uzrok: Uzvodni servis vraća SSE sadržaj, dok klijent očekuje JSON.
Zaobilazno rješenje: Koristite stream=true za direktne pozive prema oblaku. Lokalno izvršno okruženje uključuje rezervni SSE→JSON mehanizam.
- Kreirajte novi ključ na lokalnoj nadzornoj ploči (
/api/keys) - Pokrenite sinhronizaciju s oblakom: Omogućite Cloud → Sync Now
- Stari/nesinhronizovani ključevi i dalje mogu vratiti
401u oblaku
Simptomi: curl http://localhost:20128/v1/models vraća curl: (56) Recv failure: Connection reset by peer. Nadzorna ploča i krajnje tačke bez autentifikacije rade, ali autentifikovane krajnje tačke ne rade — izgleda kao problem s autentifikacijom, ali nije.
Uzrok: docker run -p 20128:20128 objavljuje port i na 0.0.0.0 (IPv4) i na :: (IPv6), ali proces unutar kontejnera sluša samo na IPv4. Na hostovima gdje se localhost prvo razrješava kao ::1, veza dolazi na objavljeni IPv6 port iza kojeg nema procesa koji sluša → veza se resetuje.
Rješenje:
- Brza dijagnostika: Pokrenite
curl -4 http://localhost:20128/v1/models. Ako radi s-4, ali ne radi bez toga, imate nepodudaranje IPv6 povezivanja. - Trajno rješenje: Eksplicitno se povežite na IPv4 korištenjem
-p 127.0.0.1:20128:20128u vašoj naredbidocker run:Ovo prisiljava povezivanje na IPv4 i također sprječava izlaganje proxyja na svim mrežnim interfejsima hosta.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
- Provjerite polja izvršnog okruženja:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - Za prijenosni način rada: koristite cilj slike
runner-cli(uključeni CLI alati) - Za način rada s montiranjem hosta: postavite
CLI_EXTRA_PATHSi montirajte direktorij binarnih datoteka hosta samo za čitanje - Ako je
installed=trueirunnable=false: binarna datoteka je pronađena, ali nije prošla provjeru ispravnosti
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}'- Provjerite statistiku korištenja u Dashboard → Usage
- Promijenite primarni model na GLM/MiniMax
- Koristite besplatni nivo (Qoder, Kiro) za zadatke koji nisu kritični
- Postavite budžete troškova za svaki API ključ: Dashboard → API Keys → Budget
Postavite APP_LOG_TO_FILE=true u vašoj .env datoteci. Dnevnici aplikacije zapisuju se u logs/.
Artefakti zahtjeva pohranjuju se u ${DATA_DIR}/call_logs/ kada je cjevovod dnevnika poziva
omogućen u postavkama.
Kada je bilježenje cjevovoda omogućeno, postavite CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS=false da izostavite
sadržaj dijelova streama ili prilagodite CALL_LOG_PIPELINE_MAX_SIZE_KB da promijenite ograničenje veličine artefakta u KB.
# Nadzorna ploča stanja
http://localhost:20128/dashboard/health
# Provjera stanja API-ja
curl http://localhost:20128/api/monitoring/health- Glavno stanje:
${DATA_DIR}/storage.sqlite(pružaoci usluga, kombinacije, aliasi, ključevi, postavke) - Korištenje: SQLite tabele u
storage.sqlite(usage_history,call_logs,proxy_logs) + opcionalno${DATA_DIR}/call_logs/ - Dnevnici aplikacije:
<repo>/logs/...(kada jeAPP_LOG_TO_FILE=true) - Artefakti dnevnika poziva:
${DATA_DIR}/call_logs/YYYY-MM-DD/...kada je cjevovod dnevnika poziva omogućen
Radnja Clean history na stranici Request Logs briše call_logs, zastarjele
request_detail_logs i lokalni direktorij artefakata ${DATA_DIR}/call_logs/.
Kada je prekidač kola pružaoca usluge u stanju OPEN, zahtjevi su blokirani dok ne istekne period hlađenja.
Rješenje:
- Idite na Kontrolna tabla → Postavke → Otpornost
- Provjerite karticu prekidača kola za pogođenog pružaoca usluge
- Kliknite na Resetuj sve da biste poništili sve prekidače ili sačekajte da period hlađenja istekne
- Prije poništavanja provjerite da li je pružalac usluge zaista dostupan
Ako pružalac usluge više puta uđe u stanje OPEN:
- Provjerite obrazac grešaka u odjeljku Kontrolna tabla → Stanje → Stanje pružaoca usluge
- Idite na Postavke → Otpornost → Profili pružalaca usluga i povećajte prag grešaka
- Provjerite da li je pružalac usluge promijenio ograničenja API-ja ili zahtijeva ponovnu autentifikaciju
- Pregledajte telemetriju kašnjenja — veliko kašnjenje može uzrokovati greške zbog isteka vremena
- Koristite ID modela čiji je prvi segment pružalac usluge za kojeg imate pristupne podatke (
openai/whisper-1,openrouter/deepgram/nova-3). Samostalnideepgram/nova-3zahtijeva izvorni Deepgram ključ. - Provjerite je li pružalac usluge povezan u odjeljku Kontrolna tabla → Pružaoci usluga
- Provjerite podržane formate zvuka:
mp3,wav,m4a,flac,ogg,webm - Provjerite je li veličina datoteke unutar ograničenja pružaoca usluge (obično < 25MB)
- Provjerite valjanost API ključa pružaoca usluge na kartici pružaoca usluge
Koristite Kontrolna tabla → Prevodilac za otklanjanje problema s prevođenjem formata:
| Način rada | Kada koristiti |
|---|---|
| Igralište | Uporedite ulazne/izlazne formate jedan pored drugog — zalijepite neuspjeli zahtjev da vidite kako se prevodi |
| Tester razgovora | Šaljite poruke uživo i pregledajte kompletan sadržaj zahtjeva/odgovora, uključujući zaglavlja |
| Testna platforma | Pokrenite grupne testove nad kombinacijama formata da biste pronašli neispravne prijevode |
| Praćenje uživo | Pratite tok zahtjeva u stvarnom vremenu da biste otkrili povremene probleme s prevođenjem |
- Oznake razmišljanja se ne pojavljuju — Provjerite podržava li ciljni pružalac usluge razmišljanje i postavku budžeta za razmišljanje
- Pozivi alata nestaju — Neki prijevodi formata mogu ukloniti nepodržana polja; provjerite u načinu rada Igralište
- Nedostaje sistemski prompt — Claude i Gemini različito obrađuju sistemske promptove; provjerite izlaz prijevoda
- SDK vraća sirovi niz znakova umjesto objekta — Riješeno u v1.x; alat za pročišćavanje odgovora uklanja nestandardna polja (
x_groq,usage_breakdownitd.) koja uzrokuju greške pri Pydantic validaciji u OpenAI SDK-u. Ako ovo i dalje vidite na v3.x+, prijavite problem. - GLM/ERNIE odbija ulogu
system— Riješeno u v1.x; normalizator uloga automatski spaja sistemske poruke s korisničkim porukama za nekompatibilne modele. Ako ovo i dalje vidite na v3.x+, prijavite problem. - Uloga
developernije prepoznata — Riješeno u v1.x; automatski se pretvara usystemza pružaoce usluga koji nisu OpenAI. Ako ovo i dalje vidite na v3.x+, prijavite problem. json_schemane radi s Gemini modelom — Riješeno u v1.x;response_formatse sada pretvara u Gemini parametreresponseMimeType+responseSchema. Ako ovo i dalje vidite na v3.x+, prijavite problem.
- Automatsko ograničavanje brzine primjenjuje se samo na pružaoce usluga s API ključem (ne na OAuth/pretplatu)
- Provjerite je li automatsko ograničavanje brzine omogućeno u Settings → Resilience → Provider Profiles
- Provjerite vraća li pružalac usluge statusne kodove
429ili zaglavljaRetry-After
Profili pružalaca usluga podržavaju sljedeće postavke:
- Osnovna odgoda — Početno vrijeme čekanja nakon prvog neuspjeha (zadano: 1s)
- Maksimalna odgoda — Gornja granica vremena čekanja (zadano: 30s)
- Množilac — Koliko povećati odgodu po svakom uzastopnom neuspjehu (zadano: 2x)
Kada mnogo istovremenih zahtjeva pristupi pružaocu usluge s ograničenom brzinom, OmniRoute koristi mutex + automatsko ograničavanje brzine kako bi serijalizirao zahtjeve i spriječio lančane neuspjehe. Ovo se automatski primjenjuje na pružaoce usluga s API ključem.
Simptomi:
- Krajnja tačka za dovršavanje razgovora vraća ponovljivi odgovor
503čiji je kod greškechat_admission_busy. - Odgovor uključuje
Retry-After. Od verzije #12135 vrijednost se izvodi iz uočene zauzetosti — uzima se veća vrijednost između periodaOMNIROUTE_CHAT_ADMISSION_QUEUE_MStokom kojeg je zahtjev već čekao i vremena tokom kojeg se drže trenutni zahtjevni najmovi — zaokružena naviše na cijele sekunde i ograničena na 60. Kada je kontrolni mehanizam neaktivan, zadržavaju se historijske minimalne vrijednosti: 2 sekunde na putanji zasnovanoj na bajtovima i 1 sekunda na putanji zasnovanoj na strukturi (koja također uključujereason: "structure_limit"). - To se može dogoditi dok je drugi zahtjevni razgovor ili dugotrajni streaming odgovor još uvijek u toku.
Tijelo odgovora zasnovanog na bajtovima je:
{
"error": {
"message": "Chat admission capacity is temporarily unavailable. Retry shortly.",
"type": "server_error",
"code": "chat_admission_busy"
}
}Odgovor zasnovan na strukturi koristi isti tip i kod, uz poruku
Local chat admission capacity is busy for this structurally heavy request; upstream provider routing was not attempted. Retry shortly.
i reason: "structure_limit".
Uz zadane pragove, zahtjev je strukturno zahtjevan kada ima najmanje 200 poruka,
najmanje 64 alata ili najmanje 32,000 procijenjenih tokena, odnosno kada ograničena procjena strukture
iscrpi svoja ograničenja od 10,000 posjećenih čvorova ili dubine 12.
Uzrok: Ovo je namjerno odbacivanje opterećenja unutar OmniRoutea, a ne greška uzvodnog pružaoca usluge. Svaki proces koristi lokalni zaštitni mehanizam procesa kako bi rezervirao ograničeni kapacitet za zahtjevne zahtjeve prije zadržavanja i raščlanjivanja velikog tijela zahtjeva. Zahtjevni najam ostaje zadržan tokom cijelog životnog vijeka SSE odgovora.
#503-fanout: prije ove ispravke, zaštitni mehanizam ograničavao je istovremenost na fiksni BROJ zahtjeva
(OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT, zadano 1) bez obzira na memoriju hosta, pa je
grananje agenta za programiranje (više podagenata/CLI-jeva, tijela rutinski > 256 KB) smanjivalo efektivnu
istovremenost na približno 1 i uzrokovalo odgovore 503 pri potpuno normalnom opterećenju. Zaštitni mehanizam sada se samostalno podešava: njime upravlja
automatski izveden BAJTNI budžet za unos (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES), dimenzioniran prema
stvarnom memorijskom ograničenju procesa, a također provjerava signal pritiska na resurse uživo — tako da
odbacuje opterećenje samo kada je host zaista pod memorijskim pritiskom, a ne samo zato što je istovremeno
stiglo više zahtjevnih zahtjeva. Staro ograničenje broja (OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT) i dalje se
poštuje, ali samo ako ga izričito postavite.
Kada je kapacitet zauzet, zahtjevan zahtjev prvo čeka do
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS (zadano 2000, 0 onemogućava čekanje) da se oslobodi mjesto
prije nego što odgovori ponovljivim odgovorom 503. Ograničeno čekanje postoji kako bi klijenti agentskog tipa
(OpenCode, Claude Code, Cursor), koji istovremeno granaju zahtjevne podzahtjeve, serijalizirali nalet
umjesto da potroše cijeli budžet za ponovne pokušaje na trenutna odbijanja i prekinu rad usred zadatka.
Trenutna zauzetost zahtjevnih najmova, utvrđeni bajtni budžet i ozbiljnost pritiska uživo
prikazuju se na GET /api/monitoring/health → chatAdmission (inflightBytes, maxInflightBytes,
budgetSource, pressureSeverity, countCapEnabled) — provjerite ih prije izmjene bilo koje varijable okruženja.
Settings → Resilience → Request Queue → Concurrent Requests ne upravlja ovim; ta postavka
upravlja zasebnim mehanizmom reda zahtjeva pružaoca usluge.
Rješenje:
- Prvo pokušajte ponovo. Klijenti trebaju poštovati
Retry-Afteri koristiti odgađanje umjesto trenutnog ponavljanja zahtjeva. - Provjerite
/api/monitoring/health→chatAdmissionprije bilo kakvog podešavanja.countCapEnabled: falsei velikodušanmaxInflightBytesznače da automatski izveden budžet već ispravno obavlja svoj posao;pressureSeverityvrijednostihigh/criticalznači da hostu zaista nedostaje memorije — to se ne može riješiti varijablom okruženja za prihvat zahtjeva, već je potrebno više RAM-a ili manje radno opterećenje. - Samo ako
/api/monitoring/healthpokaže da je automatski izveden budžet zaista premalen za vaš host (rijetko — već se prilagođava okruženjima od kontejnera do fizičkog servera), direktno ga nadjačajte pomoćuOMNIROUTE_CHAT_MAX_INFLIGHT_BYTESumjesto vraćanja na zastarjelo ograničenje broja zahtjeva.
Pogledajte referencu varijabli okruženja za mjerodavne postavke prihvata zahtjeva.
Neki korisnici OmniRoutea postavljaju pristupnik ispred RAG ili agentskih sistema. U takvim postavkama često se pojavljuje neobičan obrazac: OmniRoute izgleda ispravno (pružaoci usluga su dostupni, profili usmjeravanja su ispravni, nema upozorenja o ograničenju broja zahtjeva), ali je konačni odgovor ipak pogrešan.
U praksi ovi incidenti obično potiču iz nizvodnog RAG procesa, a ne iz samog pristupnika.
Ako želite zajednički rječnik za opisivanje tih grešaka, možete koristiti WFGY ProblemMap, vanjski tekstualni resurs s MIT licencom koji definiše šesnaest obrazaca grešaka koje se ponavljaju u RAG / LLM sistemima. Na visokom nivou obuhvata:
- odstupanje pri dohvaćanju i narušene granice konteksta
- prazne ili zastarjele indekse i vektorske baze
- nepodudaranje ugrađivanja i semantike
- probleme sa sastavljanjem upita i prozorom konteksta
- kolaps logike i pretjerano samouvjerene odgovore
- greške u dugim lancima i koordinaciji agenata
- odstupanje memorije i uloga u sistemima s više agenata
- probleme s redoslijedom implementacije i pokretanja
Ideja je jednostavna:
- Kada istražujete loš odgovor, zabilježite:
- korisnički zadatak i zahtjev
- kombinaciju rute ili pružaoca usluga u OmniRouteu
- sav RAG kontekst korišten nizvodno (dohvaćeni dokumenti, pozivi alata itd.)
- Povežite incident s jednim ili dva broja iz WFGY ProblemMapa (
No.1…No.16). - Pohranite broj na vlastitu nadzornu ploču, u operativni priručnik ili sistem za praćenje incidenata, uz OmniRoute zapise.
- Upotrijebite odgovarajuću WFGY stranicu da biste odlučili trebate li promijeniti svoj RAG sistem, mehanizam za dohvaćanje ili strategiju usmjeravanja.
Kompletan tekst i konkretna uputstva dostupni su ovdje (MIT licenca, samo tekst):
Ovaj odjeljak možete zanemariti ako iza OmniRoutea ne pokrećete RAG ili agentske procese.
Problemi specifični za izdanje v3.8.0 i njihova trenutna zaobilazna rješenja. Ako ispravka bude dostupna u kasnijoj zakrpi, unos će biti ažuriran ili uklonjen.
Simptomi:
- „Devin CLI nije pronađen“ ili „autentifikacija nije uspjela“ prilikom pozivanja alata koji koriste Devin
- Provjera CLI-ja tokom izvršavanja prijavljuje
installed=false
Uzroci:
CLI_DEVIN_BINupućuje na putanju koja ne postoji- Devin CLI nije instaliran na hostu
Rješenje:
- Instalirajte Devin CLI za svoju platformu
- Postavite
CLI_DEVIN_BIN=/usr/local/bin/devin(ili stvarnu putanju) u.env - Ponovo pokrenite OmniRoute i ponovite testiranje putem Nadzorna ploča → CLI alati
Simptomi:
- Model ostaje naveden kao da je u periodu hlađenja čak i nakon isteka vremena
- Zahtjevi i dalje preskaču model pri kombinovanom usmjeravanju iako je vremenska oznaka u prošlosti
Ručno poništavanje:
- Nadzorna ploča: Postavke → Periodi hlađenja modela → kliknite Ponovo omogući na kartici na koju problem utiče
- API:
DELETE /api/resilience/model-cooldownssa zaglavljima za upravljačku autentifikaciju
Simptomi:
- Greška 403 prilikom testiranja veze s pružaocem usluga Command Code
- Kartica pružaoca usluga prikazuje „neovlašteno“ nakon novog dodavanja
Uzrok: OAuth proces nije završen (povratni poziv nije primljen ili token nije sačuvan).
Rješenje:
- Pokrenite
omniroute providersiz CLI-ja da biste ponovo pokrenuli OAuth proces ili - Ponovo pokrenite OAuth putem Nadzorna ploča → Pružaoci usluga → Command Code → Ponovo poveži
Simptomi:
- Veoma kratki ili trenutni periodi hlađenja u ModelScopeu nakon malog naleta zahtjeva
- Kombinovano usmjeravanje preskače ModelScope ranije nego što je očekivano
Uzrok: ModelScope šalje zaglavlja Retry-After specifična za pružaoca usluga. v3.8.0 sadrži namjensku obradu tih zaglavlja, pa ih starije verzije pogrešno tumače kao generičke naznake ograničenja broja zahtjeva.
Rješenje:
- Provjerite koristite li v3.8.0 ili noviju verziju
- Provjerite je li opcija
useUpstream429BreakerHintsomogućena u odjeljku Postavke → Otpornost
Simptomi:
- Greška 401 za svaki zahtjev prema Codex/Responses WebSocket mostu prilikom pokretanja na udaljenom produkcijskom hostu
- WebSocket most prekida uspostavljanje veze odmah nakon povezivanja
Uzrok: Varijabla okruženja OMNIROUTE_WS_BRIDGE_SECRET nedostaje u produkcijskom okruženju.
Rješenje:
- Generišite nasumičnu tajnu:
openssl rand -hex 32 - Postavite
OMNIROUTE_WS_BRIDGE_SECRET=<random-secret>u okruženju produkcijskog servera (i svakog klijenta koji komunicira s mostom) - Ponovo pokrenite OmniRoute
Simptomi:
- Zabilježeno je upozorenje:
background mode degraded to synchronous - Zahtjev s
background: truevraća uobičajeni sinhroni odgovor umjesto identifikatora pozadinskog zadatka
Uzrok: v3.8.0 namjerno degradira background: true u Responses API-ju na sinhrono izvršavanje uz prikazivanje upozorenja. Potpuno asinhrono izvršavanje u pozadini planirano je za buduću isporuku.
Rješenje:
- Prilagodite klijent tako da poziva bez opcije
backgroundili - Sačekajte kasnije izdanje koje donosi potpuno asinhroni pozadinski način rada (pratite dnevnik promjena)
Ako CLI ispiše ⚠ Server did not respond within 60s, ali server zapravo radi, vremenski okvir za provjeru spremnosti prekratak je za vaše okruženje.
Ovo se često događa na Windowsu (antivirusni programi, alati za praćenje sistema datoteka) ili u kontejnerima s velikim radnim opterećenjem pri pokretanju.
Rješenje — povećajte vremenski okvir:
# Putem varijable okruženja (ostaje primijenjeno nakon ponovnih pokretanja):
export OMNIROUTE_READY_TIMEOUT_MS=180000 # 3 minute
omniroute serve
# Putem CLI opcije (jednokratno):
omniroute serve --ready-timeout 180000Zadana vrijednost je 60 000 ms (60 s). Upozorenje je samo informativno; server se nastavlja pokretati u pozadini i bit će dostupan kada se pokretanje završi.
Za sve detalje o OMNIROUTE_READY_TIMEOUT_MS pogledajte docs/reference/ENVIRONMENT.md.
- GitHub problemi: github.com/diegosouzapw/OmniRoute/issues
- Arhitektura: Za interne detalje pogledajte
docs/architecture/ARCHITECTURE.md - API referenca: Za sve krajnje tačke pogledajte
docs/reference/API_REFERENCE.md - Kontrolna ploča stanja: Provjerite Kontrolna ploča → Stanje za status sistema u stvarnom vremenu
- Prevodilac: Koristite Kontrolna ploča → Prevodilac za otklanjanje problema s formatom