Docs / Help
Troubleshooting
Find your symptom. Each entry gives the cause and the fix, from the smallest problem to the biggest.
Work down your symptom's section. If nothing here fits, post in the community with the request_id or fact_check_id from the response.
Quick checklist (do this first)
- Is the key copied exactly, with no space or line break at the end?
- Is the header
Authorization: Bearer pij_live_...(with the word Bearer)? - Is the body valid JSON, and is
Content-Typeapplication/json? - Is
texta string between 1 and 8,000 characters? - Are you using
async: true? - Have you used your 100 free checks this month?
Signing in
| Symptom | Cause | Fix |
|---|---|---|
| Code never arrives | Mistyped email, mail filter, or the code expired. | Check spam. Wait a minute and request a new code. Codes last 10 minutes. |
| Code is rejected | Old code, or you requested a newer one. | Only the latest code works. Request another and use it straight away. |
| "Please use your organisation email" | You used Gmail, Yahoo, Outlook or similar. | Use your work address. Workspaces belong to organisations. |
| "Ask your workspace owner" | Your organisation already has a workspace and you are not in it. | Ask the owner to add you on the Team tab. |
| "Could not prepare a sign-in code" | A server setting is wrong (our side or a self-hosted copy). | Try again in a minute. If it persists, tell us in the community. |
| Dashboard shows the sign-in page again | Your session ended or browser storage is blocked. | Sign in again. Allow site data for this site, and avoid private windows. |
Keys
| Symptom | Cause | Fix |
|---|---|---|
| 401 invalid_api_key | Wrong key, extra space, missing Bearer, or revoked. | Re-copy the key. If unsure, create a new one and revoke the old. |
| It worked yesterday, 401 today | Someone revoked the key. | Check the Activity tab for key events. Create a new key. |
| I lost my key | Keys are shown once. | Create a new key and revoke the lost one. |
| I pasted a key in public | Anyone may use it. | Revoke it now. Then create a new one. |
| No API keys tab | Only owners and admins see keys. | Ask an owner or admin. |
Requests
| Symptom | Cause | Fix |
|---|---|---|
| 400 bad_text | Empty, missing or too long. | Send 1 to 8,000 characters. Split long articles by section. |
| 400 bad_json | Broken JSON. | Check quotes and commas. In shells, wrap the body in single quotes. |
| Browser shows a CORS error | You called the API from a web page. | Call it from your server instead. See Connect a website. |
| Text with special characters fails | Wrong encoding or unescaped quotes. | Send UTF-8. Let a JSON library build the body instead of joining strings by hand. |
| Windows command cuts the text | Command line length limit. | Read the text from a file in a script. |
| 402 free_limit_reached | 100 free checks used. | Wait for the 1st of the month. Billing will allow more. |
Slow or timed-out checks
| Symptom | Cause | Fix |
|---|---|---|
| Timeout or 524 after about 100 seconds | A synchronous check takes longer than the network allows. | Use async: true and poll /v1/job/{id}. |
Job stays running a long time | Long text, many claims, or a busy period. | Keep polling every 10 to 15 seconds for up to 15 minutes. |
Job is failed | The check did not finish. | Send it again. It is not counted. |
| 404 no_such_job | Wrong ID, or another account's job. | Use the exact ID from your own key's request. |
| 502 check_failed | The check did not complete. | Retry with 5, 15, then 45 seconds between tries. Shorten the text. |
Answers that look wrong or incomplete
| Symptom | Cause | Fix |
|---|---|---|
text and disclosure are empty, and formatter_warnings mentions the formatter | The write-up step did not run (a temporary service problem). | The verdict is valid but there is no write-up. Send the check again. Never publish without the disclosure. |
No verdict, status is not_yet_confirmed | The claim was held for your editor. | Open Review queue in the dashboard and decide. |
Verdict is unverifiable | Real evidence was searched and none was found. | This is a finding. Add more specific details to the claim (who, where, when) and check again. |
| The claim was split into several | Your text held more than one claim. | Expected. Each claim gets its own verdict. |
| Confidence is low | Thin or conflicting evidence. | Expect it to be held. Add specifics, or have an editor decide. |
previously_checked: true | The same claim was checked before. | Expected. It was still re-checked with fresh evidence. |
| Answer is in the wrong language | No language sent and the default is not what you want. | Send language or change the default under House style. |
| Wording in Hausa, Igbo, Yoruba or Pidgin reads oddly | AI-drafted wording is still being reviewed by native speakers. | Post the phrase in the community so we can fix it. |
House style
| Symptom | Cause | Fix |
|---|---|---|
| Style is not applied | Saved after the check started, or sent without a key from your workspace. | Run a new check. Style applies from the next check. |
| Style applied on the dashboard but not by API | Different key or different workspace. | Create keys in the workspace where you set the style. |
| Style rule ignored | It conflicts with a fact, or is too vague. | Make it short and concrete. Facts always win over style. |
| Someone changed it | Admins can edit. | Check Activity for the change and the person. |
Team and roles
| Symptom | Cause | Fix |
|---|---|---|
| Cannot add a colleague | Their email is not at your domain, or is personal. | Use their organisation address. |
| Person says they cannot join | They are not added yet, or they used another email. | Add exactly the address they sign in with. |
| Cannot see Review queue | Members cannot review. | Ask an admin to make you an editor. |
| Owner left the company | No owner to manage. | Ask us in the community. We will confirm and help move ownership. |
When it is on our side
If many things fail at once, or /v1/health says the gateway is unreachable, the problem is probably ours. Wait a few minutes, then post in the community. Include the time, the status code and the request_id.
curl https://api.chatniai.com/v1/health
What to include when you ask for help
- The status code and the full error body.
- The
request_idorfact_check_id. - What you sent (without the key!).
- What you expected.
CarefulNever paste your API key into the community, an email or a screenshot.