Skip to main content

Error reference

ErrorCauseFix
UnauthorizedMissing or invalid credentialsSet MOSS_PROJECT_ID and MOSS_PROJECT_KEY in your environment
Index not foundQuerying or loading an index that doesn’t existCall createIndex() first; verify the name matches exactly (case-sensitive)
Index not loadedCalling query() before loadIndex()Call loadIndex(name) before query(). query() throws if the index isn’t loaded locally
Index already existsCalling createIndex() on an existing index nameUse addDocs() with upsert: true to update documents, or delete the index first
Missing embeddings runtimeInvalid or unrecognised modelIdUse moss-minilm, moss-mediumlm, or custom
Embedding requiredUsing modelId: 'custom' without providing embeddingSupply an embedding array on every document and every query() call
Job failedAsync mutation errorInspect JobStatusResponse.error via getJobStatus(jobId)

Common scenarios

Search results are irrelevant

  • Try hybrid search: lower alpha for more keyword matching (default is 0.8):
    await client.query('my-index', 'query text', { topK: 5, alpha: 0.5 })
    
  • Check document chunking: very long documents dilute embedding signal. Aim for 200-500 tokens per chunk.
  • Switch models: try moss-mediumlm for higher accuracy.

SDK error behaviour

  • Most methods throw if the target index does not exist.
  • createIndex() throws if the index already exists.
  • loadIndex() throws if the index does not exist in cloud storage or loading fails.
If a job reaches "failed", its JobStatusResponse.error will be non-null. The job’s currentPhase (see JobPhase) can hint at where it failed - a job stuck on downloading usually means a network issue.

Still stuck?