Jev schema mismatch errors
Symptom: 422 (or a gateway validation error) that names a question field, or a 200 response whose type does not match what your TypeScript expects.
A schema mismatch is not a wrong department Choice. It is a body the door cannot parse, or a client that assumed OpenAPI types from the wrong host. Official validation language: docs.typesafe.ai/api. Unofficial tree below. No keys sold here.
Decision tree
Is the status 2xx?
├─ no, 422 → read `field` in the error body
│ ├─ questions.ID.type → noul | choice | score on first-party
│ ├─ questions.ID.criteria → map vs array vs true/false glosses
│ ├─ model → alias/version/door id
│ └─ state → not an image; must be text/object/array
└─ yes, but client throws
├─ expected `noul`, got `boolean` → you called Vercel evaluate
├─ expected `confidence` on Noul → Noul has none
└─ expected `jev-latest` in response.model → you get jev-1.13.0
First-party vs door schemas
| You wrote | First-party HTTP | Vercel experimental_evaluate (their examples) |
|---|---|---|
| Yes/no type | "noul" |
"boolean" |
| Yes/no value | noul |
probability (their writeups) |
| Model | jev-latest / jev-1.13.0 |
typesafe-ai/jev |
Copy-paste across doors is the #1 mismatch we see in support-shaped questions.
Choice criteria must be a map, Score a list, Noul optional {true,false}. Max 255 Choice options; Score 2–10 levels. Exceeding those is a validation problem, not a “low confidence” problem.
jev-1.13 vs jev-1.13.0
If the error is “unknown model,” you likely sent a family string to a host that wants a patch id (or the reverse). Matrix: decision endpoint.
Door-wrong model strings and type: boolean
Symptom A: 422 on model after you paste a Gateway id into curl.
Cause: typesafe-ai/jev and typesafe/jev-1.13 are marketplace strings. First-party POST https://api.typesafe.ai/v1/systemone wants jev-latest or a pin such as jev-1.13.0. GET /v1/models lists first-party aliases only.
Fix: map ids per door. Do not retry 422. See REST channel and serverless channel.
Symptom B: 422 on questions.refunded.type because you sent "boolean" to api.typesafe.ai.
Cause: Vercel evaluate examples use type: "boolean". First-party yes/no is noul (0–1). The client that expects confidence on that answer will also throw on 200 — Noul has none; Choice/Score do.
Fix: translate at the adapter. Keep question design shared; do not share wire types. Field-named 422 details: invalid input. Envelope: error envelope. Schema: request schema.
Official SDKs retry 429/529 only. We do not sell keys.
FAQ
Does TypeSafe return a separate “schema mismatch” status? No. Structural failures are 422. Semantic mismatch (criteria contradict instructions) may still 200 with a confused distribution — jaggedness, not HTTP.
Max tokens exceeded?
Context limits live on the models page (64k / 32k first-party). Marketplace cards may list 32k. Over-limit behavior is a size error; shrink state rather than inventing a status we did not see documented.
Can I send jev-1.13 without the patch?
Some hosts reject the family string. Pin jev-1.13.0 on first-party after you tune.
Is boolean ever valid on first-party?
Not in the TypeSafe API reference we cite. Use noul.
Hub: Errors. Siblings: invalid input, request schema.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.