# Pag-troubleshoot 🌐 **Languages:** 🇺🇸 [English](../../TROUBLESHOOTING.md) | 🇧🇷 [Português (Brasil)](../pt-BR/TROUBLESHOOTING.md) | 🇪🇸 [Español](../es/TROUBLESHOOTING.md) | 🇫🇷 [Français](../fr/TROUBLESHOOTING.md) | 🇮🇹 [Italiano](../it/TROUBLESHOOTING.md) | 🇷🇺 [Русский](../ru/TROUBLESHOOTING.md) | 🇨🇳 [中文 (简体)](../zh-CN/TROUBLESHOOTING.md) | 🇩🇪 [Deutsch](../de/TROUBLESHOOTING.md) | 🇮🇳 [हिन्दी](../in/TROUBLESHOOTING.md) | 🇹🇭 [ไทย](../th/TROUBLESHOOTING.md) | 🇺🇦 [Українська](../uk-UA/TROUBLESHOOTING.md) | 🇸🇦 [العربية](../ar/TROUBLESHOOTING.md) | 🇯🇵 [日本語](../ja/TROUBLESHOOTING.md) | 🇻🇳 [Tiếng Việt](../vi/TROUBLESHOOTING.md) | 🇧🇬 [Български](../bg/TROUBLESHOOTING.md) | 🇩🇰 [Dansk](../da/TROUBLESHOOTING.md) | 🇫🇮 [Suomi](../fi/TROUBLESHOOTING.md) | 🇮🇱 [עברית](../he/TROUBLESHOOTING.md) | 🇭🇺 [Magyar](../hu/TROUBLESHOOTING.md) | 🇮🇩 [Bahasa Indonesia](../id/TROUBLESHOOTING.md) | 🇰🇷 [한국어](../ko/TROUBLESHOOTING.md) | 🇲🇾 [Bahasa Melayu](../ms/TROUBLESHOOTING.md) | 🇳🇱 [Nederlands](../nl/TROUBLESHOOTING.md) | 🇳🇴 [Norsk](../no/TROUBLESHOOTING.md) | 🇵🇹 [Português (Portugal)](../pt/TROUBLESHOOTING.md) | 🇷🇴 [Română](../ro/TROUBLESHOOTING.md) | 🇵🇱 [Polski](../pl/TROUBLESHOOTING.md) | 🇸🇰 [Slovenčina](../sk/TROUBLESHOOTING.md) | 🇸🇪 [Svenska](../sv/TROUBLESHOOTING.md) | 🇵🇭 [Filipino](../phi/TROUBLESHOOTING.md) Mga karaniwang problema at solusyon para sa OmniRoute. --- ## Mabilis na Pag-aayos | Problema | Solusyon | | ------------------------------------------------- | ---------------------------------------------------------------------------- | | Unang login ay hindi gumagana | Lagyan ng check ang `INITIAL_PASSWORD` sa `.env` (default: `123456`) | | Nagbubukas ang dashboard sa maling port | Itakda ang `PORT=20128` at `NEXT_PUBLIC_BASE_URL=http://localhost:20128` | | Walang mga log ng kahilingan sa ilalim ng `logs/` | Itakda ang `ENABLE_REQUEST_LOGS=true` | | EACCES: tinanggihan ang pahintulot | Itakda ang `DATA_DIR=/path/to/writable/dir` na i-override ang `~/.omniroute` | | Hindi nagse-save ang diskarte sa pagruruta | Update sa v1.4.11+ (Zod schema fix para sa pagtitiyaga ng mga setting) | --- ## Mga Isyu sa Provider ### "Ang modelo ng wika ay hindi nagbigay ng mga mensahe" **Sanhi:** Naubos na ang quota ng provider. **Ayusin:** 1. Suriin ang dashboard quota tracker 2. Gumamit ng combo na may fallback tier 3. Lumipat sa mas mura/libreng tier ### Paglilimita sa Rate **Dahil:** Naubos na ang quota ng subscription. **Ayusin:** - Magdagdag ng fallback: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - Gamitin ang GLM/MiniMax bilang murang backup ### Nag-expire na ang OAuth Token Ang OmniRoute ay awtomatikong nagre-refresh ng mga token. Kung magpapatuloy ang mga isyu: 1. Dashboard → Provider → Kumonekta muli 2. Tanggalin at muling idagdag ang koneksyon ng provider --- ## Mga Isyu sa Ulap ### Mga Error sa Cloud Sync 1. I-verify ang `BASE_URL` na mga puntos sa iyong running instance (hal., `http://localhost:20128`) 2. I-verify ang `CLOUD_URL` na mga puntos sa iyong cloud endpoint (hal., `https://omniroute.dev`) 3. Panatilihing nakahanay ang mga value ng `NEXT_PUBLIC_*` sa mga value sa gilid ng server ### Cloud `stream=false` Nagbabalik ng 500 **Symptom:** `Unexpected token 'd'...` sa cloud endpoint para sa mga non-streaming na tawag. **Sanhi:** Ibinabalik ng Upstream ang SSE payload habang inaasahan ng kliyente ang JSON. **Workaround:** Gamitin ang `stream=true` para sa mga direktang tawag sa cloud. Kasama sa lokal na runtime ang SSE→JSON fallback. ### Cloud Says Connected ngunit "Invalid API key" 1. Gumawa ng bagong key mula sa lokal na dashboard (`/api/keys`) 2. Patakbuhin ang cloud sync: Paganahin ang Cloud → Sync Now 3. Ang mga luma/hindi naka-sync na key ay maaari pa ring ibalik ang `401` sa cloud --- ## Mga Isyu sa Docker ### Hindi Naka-install ang Mga Palabas ng CLI Tool 1. Suriin ang mga field ng runtime: `curl http://localhost:20128/api/cli-tools/runtime/codex | jq` 2. Para sa portable mode: gumamit ng target ng imahe `runner-cli` (mga naka-bundle na CLI) 3. Para sa host mount mode: itakda ang `CLI_EXTRA_PATHS` at i-mount ang host bin directory bilang read-only 4. Kung `installed=true` at `runnable=false`: natagpuan ang binary ngunit nabigo ang healthcheck ### Mabilis na Runtime Validation ```bash 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}' ``` --- ## Mga Isyu sa Gastos ### Mataas na Gastos 1. Suriin ang mga istatistika ng paggamit sa Dashboard → Paggamit 2. Ilipat ang pangunahing modelo sa GLM/MiniMax 3. Gumamit ng libreng tier (Gemini CLI, iFlow) para sa mga hindi kritikal na gawain 4. Magtakda ng mga badyet sa gastos sa bawat API key: Dashboard → API Keys → Badyet --- ## Pag-debug ### Paganahin ang Mga Log ng Kahilingan Itakda ang `ENABLE_REQUEST_LOGS=true` sa iyong `.env` file. Lumilitaw ang mga log sa ilalim ng `logs/` na direktoryo. ### Suriin ang Kalusugan ng Provider ```bash # Health dashboard http://localhost:20128/dashboard/health # API health check curl http://localhost:20128/api/monitoring/health ``` ### Runtime Storage - Pangunahing estado: `${DATA_DIR}/db.json` (mga provider, combo, alias, key, setting) - Paggamit: `${DATA_DIR}/usage.json`, `${DATA_DIR}/log.txt`, `${DATA_DIR}/call_logs/` - Mga log ng kahilingan: `/logs/...` (kapag `ENABLE_REQUEST_LOGS=true`) --- ## Mga Isyu sa Circuit Breaker ### Natigil ang provider sa OPEN na estado Kapag ang circuit breaker ng provider ay BUKAS, ang mga kahilingan ay hinaharangan hanggang sa mag-expire ang cooldown. **Ayusin:** 1. Pumunta sa **Dashboard → Settings → Resilience** 2. Suriin ang circuit breaker card para sa apektadong provider 3. I-click ang **I-reset Lahat** upang i-clear ang lahat ng mga breaker, o hintaying mag-expire ang cooldown 4. I-verify na available talaga ang provider bago i-reset ### Patuloy na binabadtrip ng provider ang circuit breaker Kung ang isang provider ay paulit-ulit na pumasok sa OPEN state: 1. Suriin ang **Dashboard → Health → Provider Health** para sa pattern ng pagkabigo 2. Pumunta sa **Settings → Resilience → Provider Profiles** at taasan ang failure threshold 3. Suriin kung binago ng provider ang mga limitasyon ng API o nangangailangan ng muling pagpapatotoo 4. Suriin ang latency telemetry — ang mataas na latency ay maaaring magdulot ng mga pagkabigo batay sa timeout --- ## Mga Isyu sa Transkripsyon ng Audio ### Error sa "Hindi sinusuportahang modelo." - Tiyaking ginagamit mo ang tamang prefix: `deepgram/nova-3` o `assemblyai/best` - I-verify na konektado ang provider sa **Dashboard → Mga Provider** ### Nagbabalik ang transkripsyon na walang laman o nabigo - Suriin ang mga sinusuportahang format ng audio: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm` - I-verify na ang laki ng file ay nasa loob ng mga limitasyon ng provider (karaniwang <25MB) - Suriin ang validity ng provider ng API key sa provider card --- ## Pag-debug ng Tagasalin Gamitin ang **Dashboard → Translator** upang i-debug ang mga isyu sa pagsasalin ng format: | Mode | Kailan Gagamitin | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | **Laruan** | Paghambingin ang mga format ng input/output nang magkatabi — i-paste ang isang nabigong kahilingan upang makita kung paano ito isinasalin | | **Chat Tester** | Magpadala ng mga live na mensahe at siyasatin ang buong kahilingan/tugon payload kasama ang mga header | | **Test Bench** | Magpatakbo ng mga batch test sa mga kumbinasyon ng format upang malaman kung aling mga pagsasalin ang sira | | **Live Monitor** | Panoorin ang daloy ng kahilingan sa real-time upang mahuli ang mga pasulput-sulpot na isyu sa pagsasalin | ### Mga karaniwang isyu sa format - **Hindi lumalabas ang mga tag ng pag-iisip** — Tingnan kung sinusuportahan ng target na provider ang pag-iisip at ang setting ng badyet sa pag-iisip - **Pagbaba ng mga tawag sa tool** — Maaaring alisin ng ilang pagsasalin ng format ang mga hindi sinusuportahang field; i-verify sa Playground mode - **System prompt nawawala** — Claude at Gemini handle system prompts magkaiba; suriin ang output ng pagsasalin - **Nagbabalik ang SDK ng hilaw na string sa halip na object** — Naayos sa v1.1.0: tinatanggal na ngayon ng response sanitizer ang mga hindi karaniwang field (`x_groq`, `usage_breakdown`, atbp.) na nagdudulot ng mga pagkabigo sa pagpapatunay ng OpenAI SDK Pydantic - **Tinatanggihan ng GLM/ERNIE ang `system` na tungkulin** — Naayos sa v1.1.0: awtomatikong pinagsasama ng role normalizer ang mga mensahe ng system sa mga mensahe ng user para sa mga hindi tugmang modelo - **`developer` tungkulin ay hindi nakilala** — Naayos sa v1.1.0: awtomatikong na-convert sa `system` para sa mga hindi OpenAI na provider - **`json_schema` hindi gumagana sa Gemini** — Naayos sa v1.1.0: `response_format` ay na-convert na ngayon sa Gemini's `responseMimeType` + `responseSchema` --- ## Mga Setting ng Katatagan ### Hindi nagti-trigger ang limitasyon ng awtomatikong rate - Nalalapat lang ang limitasyon ng awtomatikong rate sa mga provider ng API key (hindi OAuth/subscription) - I-verify **Mga Setting → Resilience → Provider Profile** ay pinagana ang auto-rate-limit - Suriin kung ibinabalik ng provider ang `429` status code o `Retry-After` header ### Pag-tune ng exponential backoff Sinusuportahan ng mga profile ng provider ang mga setting na ito: - **Base delay** — Paunang oras ng paghihintay pagkatapos ng unang pagkabigo (default: 1s) - **Max na pagkaantala** — Maximum na limitasyon sa oras ng paghihintay (default: 30s) - **Multiplier** — Magkano ang itataas na pagkaantala sa bawat magkakasunod na pagkabigo (default: 2x) ### Anti-kulog na kawan Kapag maraming sabay-sabay na kahilingan ang tumama sa isang provider na limitado sa rate, gumagamit ang OmniRoute ng mutex + auto rate-limiting para i-serialize ang mga kahilingan at maiwasan ang mga pagkabigo ng cascading. Ito ay awtomatiko para sa mga API key provider. --- ## Natigil pa rin? - **Mga Isyu sa GitHub**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) - **Arkitektura**: Tingnan ang [link](ARCHITECTURE.md) para sa mga panloob na detalye - **API Reference**: Tingnan ang [link](API_REFERENCE.md) para sa lahat ng endpoint - **Dashboard ng Kalusugan**: Suriin ang **Dashboard → Kalusugan** para sa real-time na status ng system - **Translator**: Gamitin ang **Dashboard → Translator** para i-debug ang mga isyu sa format