Troubleshooting
This chapter collects the failure modes documented across the rest of the manual and organises them by symptom. Each entry points at the page that explains the mechanism in full.
Two things are worth knowing before you start.
The platform fails loudly on purpose. Startup aborts when an enabled capability is unreachable, model placement denies work it cannot prove is safe, and the repair tools report failures instead of writing a degraded replacement. A component that refuses to start is usually telling you the truth about its dependencies.
degraded is not the same as broken. A document in that state is searchable and
carries known quality loss. See
Document lifecycle.
Startup Failures
The FastAPI lifespan hook runs a fixed set of checks before serving. If any enabled check fails, startup fails. That is deliberate: advertising healthy startup while a declared capability is unreachable would be misleading.
Check |
Runs when |
Look at |
|---|---|---|
Document repository integrity |
always, and first |
the JSON document store under the configured data root |
OpenSearch connectivity |
always |
endpoint, credentials, network path to OpenSearch |
Document catalog index readiness |
always |
|
Retrieval pyramid index readiness |
always |
|
Embedding model readiness |
always |
model path under |
Reranker readiness |
|
model path under |
Document parser warmup |
|
|
LLM readiness |
|
LLM endpoint reachability |
Model residency control plane |
when a control plane is configured |
Model residency monitor. A deployment without a readiness gate is reported rather than failed. |
Before starting the API, confirm the basics:
OpenSearch answers.
The embedding model path exists.
The reranker model path exists, if reranking is enabled.
AIBS_DOCLING_ARTIFACTS_PATHexists, if local Docling artifacts are configured.Device values are
auto, unless the machine is known to have a CUDA or ROCm enabled torch runtime.The LLM endpoint answers, if
AIBS_LLM_ENABLED=true.
A standalone ingestion worker runs its own copy of these checks, excluding the LLM check unless abstractive summaries are enabled. It also checks the document catalog index, because ingestion writes document-state changes through that projection.
Full settings reference: Configuration.
Startup Succeeds But The Deployment Is Wrong
One combination passes the checks and is still incorrect:
AIBS_MODEL_CLUSTER_ENABLED=true together with
AIBS_COORDINATION_BACKEND=memory. The memory adapter is process-local, so this
pair advertises global capacity control while every API process keeps a private
view of the cluster. Use the Valkey backend for any multi-process deployment.
See Model coordination.
Login And Access Problems
Authentication and authorisation are separate gates. Valid credentials are not enough to enter the product, and product administration does not grant workspace access.
Symptom |
Likely cause |
|---|---|
Credentials work in Energy Logserver but Compass rejects them |
The account lacks the |
The user gets in but sees no workspaces |
Workspace visibility comes from workspace membership. An |
Administration routes return 403 for an administrator |
Product administration needs both |
Nobody can administer anything on a fresh deployment |
The first administrator has to be bootstrapped before first non-dev login. See Bootstrap admin. |
Sessions drop unpredictably |
Sessions currently use a fixed TTL and process-local memory, so a single-worker API deployment is required until a persistent session store lands. |
Requests authenticate through a header instead of a cookie |
The legacy |
A workspace member cannot be added by username |
Only directory-backed users resolve by username. Free-form text no longer creates a membership. |
An owner cannot be removed |
Only an owner may demote or remove another owner, and the last enabled administrator cannot be removed or disabled. |
The bootstrap CLI reports its outcome through exit codes:
Code |
Meaning |
|---|---|
|
Created, upgraded, or confirmed unchanged. |
|
Input validation or user-directory provider failure. |
Mechanism and rules: Authentication and RBAC.
Document Ingestion Problems
Ingestion runs as a durable job queue in OpenSearch with optimistic-concurrency claiming, lease heartbeats, retry scheduling and stale lease reaping. Several workers can compete for jobs without double execution.
Symptom |
Where to look |
|---|---|
Uploaded documents never leave |
Nothing is claiming jobs. Either |
Jobs are claimed and then go quiet |
Loop-level exceptions are logged and retried after |
Documents finish as |
Expected when quality signals fire: parser quality, chunk partiality, embedding or indexing warnings, or fewer indexed chunks than expected. |
Many documents carry unavailable semantic profiles |
Live ingestion retries semantic enrichment, then persists an unavailable profile so the durable job can complete degraded. Repair with Backfill semantic profiles. |
A repeated upload is rejected |
Duplicate upload rejection is intended behaviour. |
A document needs reprocessing |
The aggregate supports |
Document operations fail inside an archived workspace |
Workspace archive blocks new active document operations by design. |
Worker behaviour and controls: Ingestion worker.
Reading The Backfill Report
The semantic profile backfill refuses to hide problems. It reports failed documents instead of saving an unavailable replacement, because a repair tool that quietly writes bad data is worse than one that stops.
Status |
Meaning |
|---|---|
|
A current profile exists and |
|
The parsed document or chunk set is missing. |
|
The document is failed or deleted. |
|
Enrichment failed after retries. |
A healthy run reports failed=0, and every skipped_missing_artifacts should be
explained by genuinely missing parsed or chunked state.
Retrieval And Projection Problems
Document JSON stays the aggregate source of truth. Catalog and pyramid indexes are projections over it, so they can drift.
Symptom |
Action |
|---|---|
Workspace source lists are empty or incomplete after enabling the catalog |
Backfill the projection for existing workspaces with Rebuild document catalog. |
Search misses documents that clearly exist |
Run the rebuild in validation mode first and compare expected, projected, matched, missing and stale counts. |
Results are wrong after a mapping or schema change |
Run a full rebuild without |
Broad discovery returns nothing |
Retrieval pyramid discovery is read only when |
A pyramid rebuild reports missing semantic profiles |
Run the semantic profile backfill first, then rebuild. The order matters. |
The rebuild rejects the command line |
Some combinations are refused on purpose: |
Use --only-missing for outage repair when the schema is current and stale rows
are not the problem. Use --profile-version after chunk policy changes, when a
full recreate is not warranted.
Answering Problems
Symptom |
Likely cause |
|---|---|
Answers slow down under concurrent use |
LLM access is serialised through a concurrency gate, one in-flight request by default, matching single-lane local serving. |
Answers arrive without citations |
Check which evidence regime handled the question. Creative and Grounded bind evidence differently. See Answering. |
Chat fails while everything else works |
The LLM endpoint is optional and environment-driven. With |
A question about a named document drifts to another one |
Document binding is under active hardening. Confirm the document is |
Model Cluster Problems
Valkey-backed model placement is fail-closed. If the scheduler cannot prove that a node is fresh, has capacity and holds an atomic lease, it will not place work there. Denied work is the safety mechanism working, not a bug.
Symptom |
Meaning |
|---|---|
Work is queued or denied instead of dispatched |
A lease-protected path could not reach Valkey, or a node could not be proven fresh. |
Cache-backed paths degrade but keep working |
Best-effort cache paths treat a Valkey failure as a miss. The asymmetry with lease-protected paths is intentional. |
The scheduler never reports ready |
Run Model capacity audit until it reports the scheduler as ready. |
Residency state looks stale, or ownership flaps |
See Model residency monitor. Run at least two supervised monitor candidates on independent always-on hosts. |
Do not set AIBS_MODEL_CLUSTER_ENABLED=true before the enablement gates are
green. The sequence is in
Model coordination.
Reading API Errors
The API maps internal errors into a stable JSON shape:
{
"error": "Error message description",
"code": "stable_error_code"
}
Status |
Meaning |
|---|---|
|
Validation error. |
|
Authorization failure. Check entitlements and workspace membership. |
|
Missing entity. |
|
Duplicate, or an invalid state transition. |
|
Invariant violation. |
|
External service error. OpenSearch or the LLM endpoint is the usual source. |
|
Persistence or unexpected backend failure. |
Full reference: HTTP API.
Not Covered Yet
Two areas belong in this chapter and cannot be written from current material.
Log locations and what to look for. No page documents where each component writes its logs or which messages matter. This needs input from whoever operates a deployment.
Latency diagnosis. Per-stage ingestion, retrieval and answer latency reporting, degraded artifact reports, projection drift reports and query execution traces are planned rather than available. Until they land, slow broad questions on large workspaces can only be approached through the catalog and profile filtering paths described in Answering.