Skip to main content
Symptoms, causes and fixes for the problems people meet most often, grouped by where they appear: answers, ingestion, API errors, the widget, and streaming and CORS. If an assistant is abstaining more than you expect, start with Content best practices — the usual cause is that the answer is not in the ingested content, which is the system working rather than failing.

Answers

The assistant retrieves nothing it can answer from. Check, in order:
  1. Ingestion finished. Check the source’s latest job on the Knowledge page, or with Get a source’s current job. Questions asked before ingestion completes abstain.
  2. Documents landed. List documents for the collection. An empty list means the source produced nothing; check its URL, path filters and bounds.
  3. The assistant uses the right collection. Select Knowledge on the assistant’s row on the Assistants page, or get the assistant and compare knowledge_base_ids with the collection you ingested into.
  4. The content covers the question. If it does not, abstaining is the correct answer. See Content best practices.
The assistant has no knowledge attached, or its status is disabled or archived. On the Assistants page, select Knowledge on its row to attach a collection and Activate to set it live, or send knowledge_base_ids and status to Update an assistant.
Your deployment has no model provider configured, so it can neither answer nor ingest. Contact your MITHUNAI administrator.

Ingestion

  • The site may be unreachable from MITHUNAI, or slower than the fetch timeouts allow.
  • The crawl may have reached its depth or page limit. Raise max_depth or max_pages within the allowed range, or use a sitemap.
  • Include and exclude patterns may be filtering out the pages you want.
  • URLs that resolve to private or internal network addresses are refused by design.
See Ingestion.

API errors

The key is missing, mistyped, revoked or expired, or was truncated when copied. The secret is shown only once, so if in doubt, create a new key and revoke the old one. Send it as Authorization: Bearer arukz_sk_….
You are authenticated, but your role does not allow the action. Managing API keys always requires a signed-in Owner or Administrator; an API key is refused there whatever its role. See Organisations and roles.
The resource belongs to a different organisation from the one your credential acts in. Resources in other organisations are reported as not found by design.
The conversation is still answering a previous question. A conversation handles one question at a time; wait for the first to finish, or start another conversation.
Wait for the number of seconds in the Retry-After header, then retry. If many users share one office network, they share one budget before authentication; see Rate limits.

The widget

Open the browser’s developer console:
  • A message from the widget names the configuration problem, such as a missing apiBaseUrl or a key that does not start with arukz_wk_.
  • A CORS error means your page’s origin is not allowed. It must be in both the embed’s allowed origins and your deployment’s allowlist, spelled exactly, for example https://docs.example.com with no trailing slash. https://example.com and https://www.example.com are different origins.
  • No request at all usually means the snippet is missing or was edited. Copy it again from Operations → Widget embeds and paste it unchanged; see the widget guide.
  • The embed was revoked. Revocation is permanent; create a new embed.
The assistant the embed uses cannot answer: it is disabled or archived, or has no knowledge attached. On the Assistants page, select Activate and Knowledge on its row, or use Update an assistant. An embed’s assistant cannot be changed; to use a different one, create a new embed.
Widget conversations belong to the browser tab that started them and end when the tab closes. This is deliberate, so shared computers do not reveal one visitor’s questions to the next.

Streaming and CORS

A proxy between your client and MITHUNAI is buffering the response. Configure it not to buffer text/event-stream responses and to pass the X-Accel-Buffering: no header through.
On a streaming request, 200 only means the stream opened. Read the final event: answer.completed, answer.interrupted or answer.error. See Streaming.
Expected. Apart from the widget endpoints, the API does not accept cross-origin browser requests. Call it from your backend. See HTTP API.

Still stuck?

Contact your MITHUNAI representative with the endpoint, the time, the error code, and the conversation or job ID involved. Never include API keys or other secrets.
Last modified on September 27, 2026