---
title: "Troubleshooting"
description: "Fix a resource that failed, an assistant that finds no answer, a refused question and the most common API errors, with the exact messages Lookio shows."
canonical: "https://lookio.app/docs/platform/troubleshooting"
updated: "2026-10-24"
---

# Troubleshooting

## A resource shows Failed

Open the resource and read its **status detail**. Over the API it is `status_detail`.

| Detail or cause                                                    | What to do                                                                                                          |
| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| A format message such as "Old Word files (.doc) are not supported" | Convert the file as the message says. See [File formats](/docs/platform/file-formats).                              |
| "This file is 60 MB. The limit for a PDF file is 50 MB."           | Split the file, or reduce it. Limits are per format.                                                                |
| "Your plan's limit of 125,000 words stored is reached"             | Delete resources you no longer need, or change plan. See [Word allowance](/docs/platform/resources#word-allowance). |
| "This page does not exist (404 error)."                            | Check the address.                                                                                                  |
| "This address is not public"                                       | Lookio only reads pages reachable on the internet.                                                                  |
| "Indexing could not start. Use Re-index to try again."             | Choose **Re-index**.                                                                                                |
| "Indexing failed. Try again in a few minutes"                      | Choose **Re-index**. If it fails again, contact support with the resource id.                                       |

After you fix the cause, choose **Re-index**, or call [`POST /v1/resources/{resource_id}/reindex`](/docs/api/resources/reindex-resource).

A web page that is empty, or that blocks automated reads, can stay unreadable. Add its content as a text, or as a saved file.

## A website imported fewer pages than expected

- Open the resource, choose **Manage sitemap** and check each page's state. Choose **Retry failed pages** for the failed ones.
- Check your rules. **Exclude** always wins over **Include**, and rules apply to the path, not the full address. See [Websites](/docs/platform/websites#rules).
- Pages that `robots.txt` forbids are left out.
- A site is limited to 10,000 pages. Narrow the rules if you hit the limit.

## No answer found

An assistant that cannot find an answer says so. The question is charged like any other, because the model still read your resources and wrote the reply. If you expected an answer:

1. **Is the resource `ready`?** A resource still indexing is skipped.
2. **Does the assistant read it?** Check its knowledge mode. In **Selected resources**, the resource must be on the list. In **Tags**, the assistant must follow a tag the resource carries.
3. **Is the passage there?** Open the resource and read the extracted text. A scanned or image-only page may have produced nothing: the resource lists what could not be read.
4. **Is the question specific?** Ask with the words your documents use.
5. **Try Deep mode** for a question with several parts.

## A question is refused

| Message or code                                                                 | Cause and fix                                                                                                                                                                                                                                                                              |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `insufficient_credits`                                                          | The balance cannot cover the most the answer can cost. Add credits in Billing. The error links to the pricing page. In the CLI it exits with code `7`.                                                                                                                                     |
| `assistant_has_no_resources`                                                    | The assistant reads no resource: none is connected, or none is ready yet. Nothing was sent and no credit was held. Connect resources to the assistant (its knowledge mode and picks, or a tag it follows), wait for them to be `ready`, then ask again. In the CLI it exits with code `6`. |
| `permission_denied`                                                             | Your account lacks a permission, for example to use the API or MCP. Ask a workspace admin.                                                                                                                                                                                                 |
| `resource_not_found` "This assistant is not accessible."                        | The assistant does not exist, or you are not allowed to use it.                                                                                                                                                                                                                            |
| `resource_not_found` "Conversation not found for this API key (and end user)."  | The conversation belongs to another API key, another assistant or another `end_user`, or it was deleted or is older than 90 days. Continue it with the key, assistant and `end_user` that started it.                                                                                      |
| `invalid_request` "Provide either a conversation or a history, not both."       | Send one or the other.                                                                                                                                                                                                                                                                     |
| `invalid_request` "A conversation cannot be continued with store set to false." | `store: false` keeps nothing, so there is nothing to continue. Drop one of the two.                                                                                                                                                                                                        |
| `invalid_parameter` on `end_user` or `store`                                    | `end_user` is 1 to 200 characters of letters, digits and `. _ @ : + -`. Both are for API keys: a person's connection cannot send them.                                                                                                                                                     |
| `feature_not_available` "Thumbs on a personal chat"                             | Feedback on an answer works for an API key's conversations, not yet for a person's own chats.                                                                                                                                                                                              |

## An API call fails

Read `error.code` and `error.message` in the response. Every failure uses one format, described in [Errors](/docs/api/errors). The most common causes:

- `authentication_required` or `invalid_api_key`: the `Authorization: Bearer` header is missing or the key is wrong.
- `insufficient_scope`: the key lacks the scope the call needs. Check `credential.scopes` with `GET /v1/account`. See [Authentication](/docs/api/authentication#scopes).
- `rate_limited`: wait for the `Retry-After` header. See [Rate limits](/docs/api/rate-limits).
- `conflict`: a resource is still used by an assistant, an assistant is still used by a widget, or an `Idempotency-Key` was reused for a different request.
- `method_not_allowed`: the endpoint exists but not for that HTTP method. The `Allow` header lists the right ones.

When you contact support, include the `request_id` from the response.

## The CLI cannot sign in

Run `lookio doctor`. It checks connectivity, your credential, the CLI version and clock skew, and reports each separately. See [Authentication](/docs/cli/authentication).
