Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/veniceai-venice-errors
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/venice-errors
What's inside
- Skill name
venice-errors- Description
- Handle Venice API errors correctly. Covers the error body shapes (StandardError, DetailedError with validation details/issues, OpenAI-style context_length_exceeded, upstream provider rejections with request_id including TypeSafe/FastAPI validation errors, ContentViolationError, ProviderContentPolicyError, PayloadTooLargeError, the two x402 402 bodies), every meaningful status code (400-504, including 410 for retired endpoints), the three families of rate-limit headers, the per-key error budget (FAILED_REQUESTS / UNSUPPORTED_FEATURE_REQUESTS), Retry-After on overloaded models, SSE stream errors, and a backoff strategy that won't trip the error budget.
- License
- MIT
- Instructions
- 296 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Venice errors & retries
Most Venice errors are `{ "error": "<message>" }`, but several paths add structure. Knowing which shape you got tells you how to react.
## Error body shapes
### 1. `StandardError` - simple message
The default for 4xx/5xx.
```json
{ "error": "Authentication failed" }
```
### 2. `DetailedError` - schema validation failure (`400`)
When a request fails Venice's own schema, `details` is a nested tree (`_errors` recursively keyed by field) and `issues` is the flat issue list. Some image, video and upstream failures instead return `details` as a plain string, so check its type before walking it.
```json
{
"error": "Invalid request parameters",
"details": {
"_errors": [],
"type": { "_errors": ["Invalid enum value. Expected 'asr' | 'decision' | … , received 'bogus'", "Invalid enum value. Expected 'all' | 'code', received 'bogus'"] }
},
"issues": [
{ "code": "invalid_union", "unionErrors": [ … ], "path": ["type"], "message": "Invalid input" }
]
}
```
(That is the live response to `GET /models?type=bogus`.)
Many `400`s are plain `StandardError` - handle both. Render `details` / `issues`; don't retry.
### 3. OpenAI-style context overflow (`400`, chat)
```json
{
"error": {
"message": "Your request exceeds the model's maximum context. Please reduce your prompt or completion length.",
"type": "invalid_request_error",
"param": "messages",
"code": "context_length_exceeded"
}
}
```
Note `error` is an **object** here, so OpenAI SDKs can detect it. `message` is the provider's wording when Venice can extract it, otherwise the text above - match on `code`, not `message`. Trim the prompt or lower `max_completion_tokens`.
### 4. Upstream provider rejection (`400`)
When the request passed Venice's schema but the model provider rejected it, Venice returns the provider's message, plus a `request_id` on routes that track one (chat, for example; `/decisions` omits it):
```json
{ "error": "<provider's validation message>", "request_id": "…" }
```
FastAPI-style validation errors (e.g. from the TypeSafe provider behind `POST /decisions`, which answers `422`) are surfaced as `400` with up to five `field.path: message` items joined by `; `. If Venice can't extract a message you get `"Invalid request parameters. For assistance, please reach out to support@venice.ai"`, followed by `" and reference request ID: <id>"` when there is one. These count against the lenient unsupported-feature budget on chat / responses (see [Error budget](#error-budget)). Fix the input; quote `request_id` to support.
### 5. `ContentViolationError` - `422` content policy
```json
{
"error": "Your prompt violates the content policy of Venice.ai or the model provider",
"suggested_prompt": "A cinematic instrumental track inspired by stormy weather and dramatic tension."
}
```
Returned by chat, responses, image edit and multi-edit, and audio generation. `/image/generate` does not use it (a blocked image comes back as a `200` with `x-venice-is-content-violation: true`), and video content-policy rejections arrive on `/video/retrieve` rather than on queue. `suggested_prompt` is only emitted by `/audio/queue` and `/audio/retrieve`; when present, retry once with it if the user consents. Other `422`s include `"Your input was blocked by content moderation."` and media-validation failures (image too large, bad aspect ratio, audio/video duration out of range, ASR unable to process the audio).
### 6. `ProviderContentPolicyError` - `422` on `/video/retrieve`
```json
{
"error": {
"message": "The selected model provider rejected this request due to its content policies. Credits have been refunded. Try using <model> instead.",
"type": "provider_content_policy",
"credits_refunded": true,
"recommended_model": "<model id>"
}
}
```
Check `credits_refunded`; optionally re-queue on `recommended_model`.
### 7. `PayloadTooLargeError` - `413`
```json
{ "code": "PAYLOAD_TOO_LARGE", "error": "File exceeds the maximum allowed size of 25 MB." }
```
### 8. x402 `402` bodies
A `402` comes in two forms. Both also set the `PAYMENT-REQUIRED` header. The no-credentials form is returned on every route that needs credentials, including Bearer-only routes (`/api_keys*`, `/billing/*`, `/characters*`), where its payment options don't apply.
**No credentials at all** - x402 v2 discovery (not `401`):
```json
{
"x402Version": 2,
"error": "Authentication required",
"resource": { "url": "https://api.venice.ai/api/v1/chat/completions", "description": "Venice API", "mimeType": "application/json" },
"accepts": [ { "scheme": "exact", "network": "eip155:8453", "…": "…" }, { "scheme": "exact", "network": "solana", "…": "…" } ],
"extensions": { "sign-in-with-x": { "info": { "domain": "api.venice.ai", "statement": "Sign in to Venice AI", "…": "…" }, "supportedChains": [ … ] } },
"authOptions": {
"apiKey": { "header": "Authorization: Bearer YOUR_API_KEY", "getKey": "https://venice.ai/settings/api", "docs": "…" },
"x402Wallet": { "header": "SIGN-IN-WITH-X", "legacyHeader": "X-Sign-In-With-X", "topUp": "POST /api/v1/x402/top-up", "docs": "…" }
}
}
```
**Signed-in wallet below the $0.10 minimum balance** - discriminate on `code: "PAYMENT_REQUIRED"`:
```json
{
"error": "Payment required",
"code": "PAYMENT_REQUIRED",
"reason": "insufficient_balance",From veniceai/skills, MIT.
More from veniceai/skills
- 0.785score
venice-text-routing
veniceai
Route a prompt to the right Venice text model based on privacy tier (anonymized / private / TEE / E2EE), modality (vision / audio / video input), capability…
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-api-overview
veniceai
High-level map of the Venice AI API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint categories (including…
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-music
veniceai
Async music, sound-effect and long-form voice generation via Venice.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-speech
veniceai
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-transcription
veniceai
Transcribe audio files to text via POST /audio/transcriptions.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-voice-changer
veniceai
Async speech-to-speech voice conversion via Venice — re-record a source recording in a different voice while keeping delivery and timing.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-augment
veniceai
Venice augmentation endpoints for agent pipelines.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-auth
veniceai
Authenticate to the Venice API with a Bearer API key or with an x402 / SIWX wallet (EVM on Base, including EIP-1271 smart wallets, or Ed25519 on Solana).
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-billing
veniceai
Venice billing and usage analytics - GET /billing/balance, GET /billing/usage-history (keyset-paginated per-request ledger, JSON or CSV), and GET…
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-characters
veniceai
Discover and use Venice public characters (persona-driven system prompts with a suggested model).
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-chat
veniceai
Call POST /chat/completions on Venice.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-crypto-rpc
veniceai
Use Venice as a pay-per-call JSON-RPC proxy to 27 EVM, Starknet, and Solana networks.
SkillAFreshness: A★ 155Claude Code +9
Signals
- Stars
- 155
- Forks
- 26
- Open issues
- 1
- Last commit (this folder)
- Oct 2, 2026 (26 days ago)
- Last release
- Oct 5, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/veniceai/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from veniceai
- 0.785score
venice-text-routing
veniceai
Route a prompt to the right Venice text model based on privacy tier (anonymized / private / TEE / E2EE), modality (vision / audio / video input), capability…
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-music
veniceai
Async music, sound-effect and long-form voice generation via Venice.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-speech
veniceai
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-transcription
veniceai
Transcribe audio files to text via POST /audio/transcriptions.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-audio-voice-changer
veniceai
Async speech-to-speech voice conversion via Venice — re-record a source recording in a different voice while keeping delivery and timing.
SkillAFreshness: A★ 155Claude Code +9 - 0.784score
venice-api-overview
veniceai
High-level map of the Venice AI API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint categories (including…
SkillAFreshness: A★ 155Claude Code +9
Cite this page
venice-errors skill. Agent Mart. https://agentmart.dev/skills/veniceai-venice-errors (last updated 2026-10-24)