agentscope-ai/agentscope · error · KnowledgeBaseNotFoundError
Credential {record.data.embedding_model_config.credential_id
Error message
Credential {record.data.embedding_model_config.credential_id!r} for knowledge base {knowledge_base_id!r} not found. What it means
After a knowledge base record is found, get_knowledge loads the embedding model credential referenced by record.data.embedding_model_config.credential_id. If that credential was deleted (or never existed), it also raises KnowledgeBaseNotFoundError — deliberately reusing the 'KB not found' type so a dangling credential renders the KB unresolvable rather than failing later at model-build time.
Source
Thrown at src/agentscope/app/rag/knowledge_base_manager/_collection_per_kb.py:197
user_id,
knowledge_base_id,
)
if record is None:
raise KnowledgeBaseNotFoundError(
f"Knowledge base {knowledge_base_id!r} not found.",
)
# KB manager is an owner-internal path: the credential lives
# under the same owner as the knowledge base, so we read it
# directly from storage rather than routing through the access
# service (which is only relevant when the viewer differs from
# the owner).
credential_record = await self._storage.get_credential(
record.user_id,
record.data.embedding_model_config.credential_id,
)
if credential_record is None:
raise KnowledgeBaseNotFoundError(
f"Credential "
f"{record.data.embedding_model_config.credential_id!r} for "
f"knowledge base {knowledge_base_id!r} not found.",
)
embedding_model = build_embedding_model(
credential_record=credential_record,
config=record.data.embedding_model_config,
)
return KnowledgeBase(
name=record.data.name,
description=record.data.description,
embedding_model=embedding_model,
vector_store=self._vector_store,
collection=record.data.collection_name,
metadata_filter=None,
)
View on GitHub (pinned to e90f1c7592)
Solutions
- Re-create or re-link the credential and update the KB's embedding_model_config.credential_id
- Audit for orphaned credential references: iterate KBs and verify each credential_id resolves
- When rotating credentials, upsert the new one and repoint KBs before deleting the old
- Surface this to users as 'knowledge base is misconfigured — reconnect your embedding provider'
Example fix
# before kb = await manager.get_knowledge(user_id, kb_id) # KnowledgeBaseNotFoundError: Credential '...' for knowledge base ... not found. # after # repair: re-point the KB at a valid credential, then kb = await manager.get_knowledge(user_id, kb_id)
Defensive patterns
Strategy: try-catch
Validate before calling
record = await storage.get_knowledge_base(user_id, kb_id)
cred = await storage.get_credential(user_id, record.data.embedding_model_config.credential_id)
if cred is None:
raise RuntimeError(f'KB {kb_id} references missing credential; repair config') Type guard
null
Try / catch
from agentscope.app.rag import KnowledgeBaseNotFoundError
try:
kb = await manager.get_knowledge(user_id, kb_id)
except KnowledgeBaseNotFoundError as e:
if 'Credential' in str(e):
... # KB config is broken: re-link credential
else:
... # KB genuinely missing Prevention
- Rotate credentials with upsert + repoint before deleting old ones
- Run a periodic audit that resolves every KB's credential_id
- When importing tenant data, import credentials first
When it happens
Trigger: Calling manager.get_knowledge for a KB whose embedding credential_id points to a deleted/rotated credential record in storage; common after credential rotation scripts or manual DB cleanup that orphaned KB configs.
Common situations: Credential rotation that deletes old entries while KBs still reference them; tenant data imported without credentials; admin deleting API keys from a console without checking dependent KBs; user_id mismatch when reading the credential.
Related errors
- Knowledge base {knowledge_base_id!r} not found.
- Credential {credential_id!r} for owner {owner_id!r} disappea
- Session '{session_id}' not found.
- module {__name__!r} has no attribute {name!r}
- AGENTSCOPE_WORKER_BOOTSTRAP must be in 'module:attr' form, g
AI-assisted analysis of agentscope-ai/agentscope@e90f1c7592 (2026-08-28).
Data as JSON: /api/errors/de7edfedcaf971b8.
Report an issue: GitHub.