Skip to main content
Symptoms, causes and fixes for the problems people meet most often, grouped by where they appear: answers, ingestion, signing in, 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 Sources 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 Customizations 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 Customizations 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. Its existing conversations stay readable in the meantime.
The provider no longer serves this assistant’s model to your account: it has retired the model, or your account is not entitled to it. Choose another from List models and update the assistant, or ask the operator of your deployment.
Your deployment has no model provider configured, so it can neither answer nor ingest. Contact the operator of your MITHUNAI deployment.

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.
  • Zendesk Help Center or Discourse forum: only content a signed-out visitor can read is ingested. A help centre or forum that requires signing in fails, and so does a Discourse forum installed under a path such as example.com/forum.
  • Discourse with solved_only: the forum must run the Solved plugin. Without it the sync fails rather than reading every topic.
  • Discourse on a busy forum: requests are not paced, so a forum’s own rate limit can end the run. Sync again later, or lower max_topics.
  • OpenAPI schema: the schema must be readable without signing in, in one file, and no larger than your deployment’s fetch limit, 1 MiB by default. A $ref to another file or host is not followed.
  • GitHub discussions: they need a GitHub token even for a public repository, either your deployment’s own GitHub access or a GitHub connection of yours, and the repository must have discussions switched on. Discussions are in beta.
See Sources.
These read with a saved connection, so most failures are the connection’s.
  • The service did not accept the saved connection: the token expired, was revoked or was reset at the service. Replace the token in Settings → Connections; the next sync uses it.
  • Nothing, or less than expected, was read: the connection’s account cannot see it. In Notion, share the pages with the connection; in Confluence, check the account can open the spaces; in GitHub, check the token was given the repository and a read permission for what you chose.
  • “Saved connections are not available on this deployment yet” (503): your deployment has not been set up to store secrets. Ask the person who runs it.
  • The service is limiting how fast it can be read: the sync is retried later by itself.
These three are in beta: Confluence and Notion have been tested only against scripted responses written from each service’s documentation, never a real site or workspace, and private GitHub has not yet been run against a real private repository. If one behaves unexpectedly, tell your MITHUNAI contact. Each page has its own table of messages: Confluence, Notion, private GitHub.
Saving an edit reads nothing. The assistant keeps answering from what the source held before, until the source is synced: select Sync now, or sync the source. Resume a paused source before syncing it: the console will not sync it, and a sync started over the API is accepted and then ends failed. See Edit, pause or rename a source.

Signing in

Your email address and password are correct, but the account is not a member of the organisation that Chat or Agents deployment serves. Each of those surfaces serves one organisation and admits only its members.
  • If you have more than one account, sign in with the one that belongs to that organisation.
  • Otherwise ask an Owner or Administrator of that organisation to add you under Settings → Members. See Members.
The message does not name the organisation, deliberately. See One sign-in.
There is no self-service sign-up. Accounts are created by whoever operates your MITHUNAI deployment, and the sign-up form says so without creating one. To evaluate MITHUNAI, book a demo; to join an organisation that already uses it, ask its Owner.
Choose Forgot password? on the sign-in screen and enter the email address you sign in with. The link it sends works once, for 30 minutes. If the screen says email is not set up, your deployment cannot send email yet: ask the person who runs it to set a password for you. See Password reset.
Check your spam folder first. A reset is sent at most three times an hour to one address, and an organisation sends at most 30 invitations an hour. The reset screen says the same thing whatever address you enter, so a mistyped address looks like success; try again with the exact address you sign in with. Whoever invited you can Re-send the invitation from Settings → Members.
Your email address already has an account on this deployment, so the invitation asks for that account’s password instead of making a new one. If you do not know it, reset it first, then open the invitation link again while it is still valid.
Invitations and password reset send email, and your deployment has no email provider set up, so Settings → Members turns the invite form off and the API answers 503 dependency_failure. Ask the person who runs your MITHUNAI deployment to set up email. Members are added only by invitation, so until email works nobody new can join an organisation; the operator can still create an organisation with its owner on the deployment’s host.
Adding a member sends an invitation, and the person joins when they accept the emailed link; until then they are under Pending invitations. If they were already a member, nothing is sent and their role is left as it was: the answer is the same either way, so that adding someone never reveals whether an address has an account. To change a member’s role, use Change role.
Nobody can change their own seat, the Owner’s, or that of someone more senior, and nobody can give a role above their own. These changes also need a signed-in console session: an API key is refused whatever its role. See Members.

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 mithunai_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. If the answer never arrives, for example because a server restarted while writing it, the conversation frees itself: the next question sent more than 15 minutes after the first takes over, and the lost answer is marked interrupted.
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.
Your organisation has used its monthly answer allowance, so new questions are refused on every surface until the next calendar month. Waiting a minute and retrying does not help. The Dashboard shows how much is used and when the count starts again; to get more answers sooner, ask whoever manages your MITHUNAI account. See Usage and limits.

The widget

The widget shows nothing at all when something is wrong, so the cause is in one of three places. Start with Check my website under Integrations → Website widget in the console: it reads the page and says whether the line is there and whether the address is allowed. It cannot see a line added by a tag manager or by JavaScript, and it does not follow redirects, so enter the final address. If it does not settle it, work through these in order.If the check says the address is not one of this widget’s allowed websites, select Allow beside the result. The widget loads only on the exact origins an embed lists, and https://example.com and https://www.example.com are two different origins.1. Is the line in the page? View the page’s HTML source, not your editor, and search for mithunai-widget.js.
  • It is not there. The snippet was not saved, was added to a different template, or the site has not been published since. Webflow and Wix apply custom code only to the published site. A cache or CDN may still be serving the old page.
  • It is there, without data-api-base-url and data-widget-key. Your platform removed the attributes. Use the object form instead, which does not depend on them. In Google Tag Manager, use the form written for it.
  • It is there with type="module". Remove that attribute. A module script cannot read its own tag.
2. What does the browser console say? Open the developer console and reload. A message starting [mithunai-widget] not mounted names the problem:With the object form the same messages name the field instead, such as apiBaseUrl is required.A message about Content-Security-Policy instead means your own site blocked the script. See Content-Security-Policy.3. Is the script loading at all? In the developer tools’ network panel, the request for mithunai-widget.js should succeed. A blocked or failed request is usually an ad blocker, a consent tool holding the script back, or a script optimiser that rewrote the tag.If the button appears but questions fail, the cause is different:
  • A CORS error means your page’s origin is not in the embed’s allowed origins. List it exactly, for example https://docs.example.com with no trailing slash. https://example.com and https://www.example.com are different origins. If it is listed exactly and requests are still refused, contact whoever operates your MITHUNAI deployment.
  • The embed was revoked. Revocation is permanent; create a new embed.
The Ask AI button appears as soon as the line is on your page, but the assistant can only answer from content that has finished being read. Straight after Set up my website, your site is usually still being read.
  1. Open Sources and look at the website’s status. While it is still being read, wait: a large site takes minutes. Check my website shows the same notice.
  2. If the job finished with nothing read, the source produced no documents. Check its address, and that the pages can be read without signing in. See Ingestion.
  3. If the source finished and has documents, check that the assistant the embed uses has that knowledge attached: select Knowledge on its row under Customizations.
  4. Ask a question the pages clearly answer. A question your content does not cover is declined on purpose.
MITHUNAI fetches the page from the public internet and does not follow redirects.
  • The address redirects. /docs often redirects to /docs/, and example.com to www.example.com; the second reads as not allowed instead, unless the address you typed is itself an allowed website. Enter the final address: open the page in a browser and copy what the address bar shows once it has loaded.
  • The page is not public. A site on your own computer, behind a sign-in, on a private network or on a staging host that blocks outside traffic cannot be read.
  • The page answered with an error. When it did, the result shows the HTTP status. Fix the page, or check a different one.
None of these means the widget is broken: a page the check cannot read may still show the widget to your visitors. Open the page and look for the Ask AI button.
The check reads the page’s HTML and runs no script. A line added by Google Tag Manager, a consent tool or your own JavaScript is not in that HTML, so it reads as not found. Open your site and look for the Ask AI button: if it is there and answers, the installation is fine.
The assistant the embed uses cannot answer: it is disabled or archived, or has no knowledge attached. On the Customizations 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 contact 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 November 12, 2026