Troubleshooting¶
Turn on debug logging first. It prints every state sent, which is usually the answer:
Symptoms¶
| Symptom | Cause |
|---|---|
| An answer barely moves with the world | The state does not say what you assumed, or it holds a number the model is being asked to compare |
| Answers sit near 0.5 with low confidence | The question measures more than one thing. Split it |
| Entities unavailable, budget sensor on | The daily budget stopped evaluation |
| Entities unavailable, budget sensor off | Look for one line saying TypeSafe is not answering |
| Setup fails with "TypeSafe did not answer" | Connectivity, not configuration. Home Assistant retries |
| Setup fails with "The server answered HTTP 404" | The address carries the request path. /v1/systemone is added for you |
| Setup fails with "no credit (HTTP 402)" | The key works, and the account behind it has no balance. On OpenRouter, add credit under Settings, Credits |
| Setup fails with "The server answered with an error" | The host answered. The text after the colon is its reply, and the Home Assistant log has it too |
| Setup fails with "could not reach the API" | No answer arrived. Check the address, DNS and the network from the Home Assistant host |
| An AI Task is refused before it is sent | Read the message. It names the field and what its selector would have to be |
| An error names a limit | It names your number too. 2 to 255 options, 2 to 10 levels, 250 entities |
| Voice commands all go to the fallback | Check the traces in diagnostics. Each one records the reason |
| Voice acts on the wrong device | The names and areas in your entity registry are what the model reads |
| A question you expected to batch went alone | Its target, template, schedule or triggers differ from the others. The preview says which |
| An action says the target holds no entities | Every entity it names has no state, often because it was renamed or removed |
| Home Assistant asks for a new API key | TypeSafe rejected the key. Setup, the questions, an action, an AI Task or a voice command can all start this |
| An action is refused and lists your entries | More than one Jev entry is loaded. Name one under API key |
| Reauthentication says a key is required | The hosted API needs a key. A key of only spaces counts as none |
| "has no picture to send" | An entity under images: is not a camera or an image entity |
| "Could not get a picture from" | The camera did not answer within 10 seconds, or is unavailable. The text after the colon is Home Assistant's reason |
| "is not an image Jev can read" | The camera sent something that is not a picture, often an error page |
| An AI Task says "Jev reads text and images" | An attachment is a video or another file type |
| "refused a request with a box question" | The model is not Jev 1.14. Add model: jev-1.14.0 to the call |
| "a box needs a picture" | A jev.ask box question was sent with nothing under images: |
| A box covers the whole picture | The thing is probably not there. Read confidence, or ask a noul beside it |
The answer does not track the world¶
This is the common one, and it is almost always the state rather than the model.
- Open the question and read the preview. It shows the exact state and what it answers right now.
- If the state is missing something, add it. The model cannot know what your sensors do not say.
- If the state holds a raw number and a rule, move the rule into Standing facts or do the comparison in the template. Measured, that is worth +0.60 against +0.21.
See writing a question that works.
Diagnostics¶
Settings, Devices and services, Jev, three dot menu, Download diagnostics.
It contains the last evaluated state for every question, the usage account, and the last 20 conversation decisions. The API key, the spoken sentences, access tokens, entity pictures and coordinates are redacted, and tests assert it. Entity names and states stay in, so read the file before pasting it into a public issue.
Reporting something¶
Open a bug report with the diagnostics file and, if the problem is an answer rather than a crash, the state from the preview. An answer without the state it read is not something anyone can debug.
Questions about setup or about writing a question go to Discussions. Report a security problem privately, as SECURITY.md describes.