A complete knowledge base for model, gateway, client, and deployment issues. Complete FAQ.
Covers NewAPI channels, OpenAI-compatible protocols, Codex, Claude Code, Gemini, Cherry Studio, Dify, Open WebUI, image models, billing, and Docker deployment.
Registration only means the account can sign in. Check the balance, whether the API key is enabled, the key group, model permissions, and available channels. First request the model list, then send a minimal request with a low-cost model.
Common causes include an API key quota cap, an exhausted key, a user-group multiplier that increases the charge, insufficient preauthorization, or missing model pricing. Check the account balance, key quota, model price, and group multiplier together.
No. Any visitor can read and abuse a key exposed in frontend code. A production site should store the OmniDino key on the backend, while the frontend calls your own backend. Browser playgrounds are only appropriate when users enter their own separate keys.
Immediately disable or delete the key in the OmniDino console, create a new one, and review request logs, balance, and unusual model usage. Do not merely change the client configuration while leaving the old key active.
Check that the Authorization header is Bearer YOUR_KEY, with one space after Bearer. Also check for copied line breaks, quotes, or leading/trailing spaces, and confirm the request is sent to the correct OmniDino domain.
Yes. Separate keys for Codex, Claude Code, Cherry Studio, Dify, and image tools let you set independent quotas, revoke access individually, and trace abnormal usage.
OpenAI-compatible clients usually use https://api.omnidino.com/v1. Native Anthropic providers usually use the root URL https://api.omnidino.com and append the Messages path themselves. Follow the guide for the specific client.
Most clients require a base URL, not a full endpoint. They append /chat/completions, /responses, or /models automatically. Entering the full path may create duplicates such as /chat/completions/chat/completions.
Chat Completions centers on messages and has the widest compatibility. Responses is better suited to modern tool calling, structured multimodal input, and agent workflows. The endpoint used depends on the client provider implementation and model capabilities.
Not directly. Their request structures, tool schemas, system prompts, and streaming events differ. NewAPI can adapt protocols, but the channel type, model mapping, and client provider must match.
The native Gemini protocol uses Google generateContent-style paths and data structures, while the OpenAI-compatible protocol uses /v1/chat/completions. Tool calling, multimodal fields, and error messages may differ between the two.
/models only verifies authentication and model-list access. Chat requests also validate the model name, channel, group, price, upstream capability, context, and request parameters, so inspect the specific chat error.
NewAPI could not find a channel matching the model, user group, channel group, and enabled state. Check user and channel groups, supported models, model mappings, channel status, and whether the channel has a valid key.
Configure a multiplier or fixed price for the model, or enable self-use mode in a private environment. Without pricing information, NewAPI cannot preauthorize quota or calculate charges.
The program expected JSON but received an HTML page. Common causes include a Cloudflare block, login page, WAF challenge, Nginx error page, or incorrect base URL. Use curl to inspect the raw headers and body.
Priority determines which channel tier is tried first, with higher values tried earlier. Within the same priority, weight controls traffic distribution. Failover is also affected by automatic disabling, retries, and channel status.
Channel tests usually use an administrator-selected model and simple request. User requests are also affected by user groups, model pricing, key restrictions, model mappings, parameters, and endpoint type. Review the user request logs.
The model catalog and actual user permissions are separate layers. Check key model restrictions, user group, channel group, model pricing, and whether an enabled channel supports the model.
Model mapping converts the model ID submitted by a client into the actual upstream model name. Incorrect mappings can make channel tests pass while real calls fail, especially with endpoint inference, Responses, and image models.
If the upstream repeatedly returns authentication, balance, rate-limit, or service errors, the system may suspend the channel according to the auto-disable policy. Review channel logs and error counts, fix the issue, then re-enable it.
Back up at least the PostgreSQL or MySQL database, docker-compose.yml, environment variables, NewAPI data directory, Redis configuration, Nginx Proxy Manager configuration, and custom theme files. Record the current image tag for rollback.
Database migrations, environment variables, stale caches, channel types, or endpoint behavior may have changed. Check container logs, migration results, Redis connectivity, and reverse-proxy paths, then test a minimal /models request.
Reduce the request to model, messages, and stream:false. Then add tools, response_format, multimodal content, image parameters, and other advanced fields one at a time to identify the unsupported parameter.
Possible causes include missing model permissions, upstream regional restrictions, WAF blocking, content policy, IP blocklists, or insufficient organization permissions. Read the response body, not just the status code.
Usually the base URL or endpoint is wrong, /v1 is duplicated, the model route does not exist, or the client uses an unsupported endpoint. Confirm the actual request URL.
Increase the client timeout, reduce max_tokens, disable tools and long context first, and check upstream latency and proxy timeouts. Nginx, Cloudflare, the client, and NewAPI may each have separate timeout settings.
The JSON can be parsed, but one or more fields do not match the upstream schema, such as malformed tools, missing required arrays, invalid enum values, or incorrect image field types.
Check the response body and NewAPI logs. A 429 can indicate insufficient account balance, insufficient key quota, RPM/TPM limits, upstream concurrency limits, or a saturated channel.
500 usually indicates an application error; 502 means the gateway received an invalid upstream response; 503 means the service is temporarily unavailable; 504 means the upstream timed out. Correlate NewAPI, Nginx, and upstream logs.
No. In browsers it is often caused by CORS, HTTPS certificates, Cloudflare, browser extensions, local proxies, or network interruption. Cross-check with curl from a server.
Reduce message history, shorten the system prompt, retrieve fewer chunks, trim tool output, or switch to a model with a larger context window. Context limits usually include both input and planned output.
The request may have reached a WordPress page, Nginx default site, login page, Cloudflare challenge, or upstream error page. Use curl -i to inspect the status code, Content-Type, and Location.
OpenAI-compatible configurations usually use https://api.omnidino.com/v1 and select a compatible wire API. Responses models require both the channel and client to support Responses.
The channel type, upstream, or NewAPI version does not implement /responses, or the model only supports Chat Completions. Change the channel type, endpoint mode, or model.
Technically yes through a compatible gateway and model mapping, but tool calls, Responses events, reasoning parameters, and structured output may not be fully compatible. Test each model beyond basic chat.
File editing and agent tasks depend on tool calling, long context, structured events, and permissions. Confirm tool support and check working-directory permissions, sandbox settings, and client logs.
Codex usually does not list every gateway model automatically. Enter the model ID explicitly in the configuration and confirm it works through the configured endpoint.
Confirm Node.js and npm are installed, reopen the terminal, and ensure the npm global bin directory is in PATH. You can also install and run Codex in WSL.
With an Anthropic-compatible gateway, set ANTHROPIC_BASE_URL to https://api.omnidino.com and provide the key through the appropriate credential variable or gateway setting. Do not use the OpenAI /v1 chat URL.
In Claude Code, an API key may take precedence over subscription credentials. To return to subscription login, clear the related environment variables, sign in again, and use /status to verify authentication.
Possible causes include expired OAuth credentials, incorrect system time, macOS Keychain issues, or failed credential storage. Sign in again and run diagnostics.
This is a client safety mechanism. Review project permissions, tool allowlists, and settings. Do not grant unrestricted execution to unknown projects for convenience.
Check the MCP configuration path, JSON format, startup command, environment variables, and server logs. Restart Claude Code and use its tool-status command to verify the server connection.
No. Claude subscriptions and Anthropic API billing are generally separate. Calls through the OmniDino gateway use your OmniDino key and balance.
The client must support a custom base URL or compatible provider. If that Gemini CLI version only supports official Google authentication, it cannot directly use an OpenAI-compatible gateway. Use CC Switch or another tool with custom-provider support.
An API key is used for the Gemini API, while OAuth is used for Google account login. Third-party gateway credentials cannot simply replace Google OAuth.
Possible causes include Google project quota, a disabled API, regional restrictions, key permissions, or insufficient upstream credit. With OmniDino, also check channel balance and user group.
OpenAI and native Gemini tool schemas may differ in enum and field constraints. Test after removing complex tool parameters, or switch to the native Gemini protocol.
Confirm the model supports vision, the client sends a compatible multimodal format, and NewAPI and the upstream correctly pass image URLs or Base64 data.
Confirm the provider type and base URL. OpenAI providers usually use https://api.omnidino.com/v1, while Anthropic providers use the root URL. If automatic discovery fails, add the actual model ID manually.
Disable streaming and test a normal request first. If that works, check upstream SSE, Nginx buffering, Cloudflare, client version, and model streaming support.
Check the model-provider plugin, credential verification, model type, and model ID. Dify treats LLM, Embedding, and Rerank as separate types.
Usually no text-embedding model is configured, the embedding request fails, dimensions do not match, or document parsing fails. Test the Embeddings endpoint separately.
The selected model may not support function calling, or the tool schema may be incompatible. Test one simple tool first and reduce the maximum iterations.
Model listing and chat use different endpoints. Check the Open WebUI base URL, API key, model ID, streaming setting, and NewAPI request logs.
Authentication and basic chat are working; the issue is likely SSE transport, proxy buffering, client parsing, or the upstream streaming-event format.
Use /v1/images/generations for image generation and /v1/images/edits for image editing. Do not call image models as ordinary chat models.
Image models often return Base64 data. The client must decode it to binary and save it as PNG, JPEG, or WebP.
Supported sizes vary by image model. Start with a documented standard size and remove extra scaling, aspect-ratio, or quality parameters.
Confirm background=transparent and use PNG or WebP with an alpha channel. Final support also depends on the model, upstream, and gateway field passthrough.
Editing endpoints usually require multipart/form-data, with image[] and mask uploaded as real files rather than embedded in a JSON string.
Whisper and transcription upstreams support different response_format values. Remove the field and use default JSON first, then test text, srt, vtt, and other formats individually.
Input is content sent to the model, Output is generated content, and Cache tokens are input served from upstream cache. Pricing may differ for each token type.
Clients may use local estimators, while actual charges follow upstream usage or gateway billing rules. Tool calls, images, caching, reasoning tokens, and protocol conversion can also cause differences.
A group multiplier is a user-group coefficient applied to the model base price. It can distinguish developer, standard, business, or quality routes, but should be explained clearly.
They may correspond to different upstreams, stability, speed, concurrency, quality, or support levels. The same model name does not guarantee identical routing or service quality.
Regularly sync or verify upstream prices, set cost alerts, preserve margin, and monitor high-usage models. Do not rely entirely on a one-time price sync.
Tokens/s measures generation speed and does not determine billable token count. Profitability depends on upstream billing, tokens recorded by NewAPI, model pricing, and multipliers.
Run docker logs and check database, Redis, environment variables, ports, and permission errors. Common causes include database connection failure, mismatched passwords, volume permissions, or migration errors.
Usually not. Keep them on an internal Docker network without public port mappings. For remote maintenance, use a firewall, VPN, or SSH tunnel.
Use the container name or private server address and port as the target, enable WebSocket, set suitable timeouts for long requests, disable buffering for streaming, and configure a valid HTTPS certificate.
The session cookie is not restricted to HTTPS. After HTTPS is fully enabled, set SESSION_COOKIE_SECURE=true and confirm the reverse proxy forwards the protocol headers correctly.
A DNS or proxy-host configuration error is routing the API subdomain to the frontend server. Check Cloudflare DNS, the NPM Proxy Host, and the target port.
Proxy buffering aggregates SSE data. Disable proxy_buffering for the relevant location and confirm the client, Cloudflare, and upstream all support persistent connections.
Use explicit volumes or host directories for the database, Redis persistence, NewAPI data, and NPM data. Container upgrades must not depend on temporary files inside containers.
Call OmniDino directly with curl, test the channel in NewAPI, then call the upstream directly. Comparing status codes, response bodies, and timing across the three layers quickly isolates the issue.
Minimal diagnostic commands
Verify the model list first, then test a minimal chat request. This separates authentication issues from model-call issues.
curl -i https://api.omnidino.com/v1/models \ -H "Authorization: Bearer YOUR_OMNIDINO_API_KEY"
curl -i https://api.omnidino.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIDINO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR_MODEL_ID","messages":[{"role":"user","content":"Reply with OK"}],"stream":false}'
Still unresolved? Contact us with complete diagnostic details.
Provide the timestamp, model ID, endpoint, HTTP status, error body, client name, and redacted configuration. Never send a complete API key.