HKUDS/DeepTutor · error · GraphRagNotConfiguredError
No active embedding model with a known dimension. Configure
Error message
No active embedding model with a known dimension. Configure one under Settings → Catalog before creating a GraphRAG knowledge base.
What it means
GraphRagNotConfiguredError from build_settings: an embedding model is active but its dimension (embedding_cfg.dim) is 0/unknown. GraphRAG must know the vector dimension up front to size its vector stores.
Source
Thrown at deeptutor/services/rag/pipelines/graphrag/config.py:269
from deeptutor.services.embedding import get_embedding_config
embedding_cfg = get_embedding_config()
chat_model = getattr(llm_cfg, "model", None)
embed_model = getattr(embedding_cfg, "model", None)
embed_dim = int(getattr(embedding_cfg, "dim", 0) or 0)
if not chat_model:
raise GraphRagNotConfiguredError(
"No active chat model. Configure one under Settings → Catalog before "
"creating a GraphRAG knowledge base."
)
if not embed_model:
raise GraphRagNotConfiguredError(
"No active embedding model. Configure one under Settings → Catalog "
"before creating a GraphRAG knowledge base."
)
if not embed_dim:
raise GraphRagNotConfiguredError(
"No active embedding model with a known dimension. Configure one under "
"Settings → Catalog before creating a GraphRAG knowledge base."
)
embedding_binding = str(getattr(embedding_cfg, "binding", "") or "")
llm_base = getattr(llm_cfg, "effective_url", None) or getattr(llm_cfg, "base_url", None)
embed_endpoint = getattr(embedding_cfg, "effective_url", None) or getattr(
embedding_cfg, "base_url", None
)
ensure_graphrag_embedding_transport(embedding_binding, embed_endpoint)
embed_base = graphrag_embedding_api_base(embedding_binding, embed_endpoint)
return {
"completion_models": {
COMPLETION_MODEL_ID: _completion_model_entry(llm_cfg, api_base=llm_base),
},
"embedding_models": {
EMBEDDING_MODEL_ID: _embedding_model_entry(View on GitHub (pinned to 3e82f13042)
Solutions
- Set the embedding dimension explicitly in the embedding profile settings (e.g. 1536 for text-embedding-3-small).
- Re-select the model from the catalog so its known dimension is populated.
- Verify with get_embedding_config().dim > 0 before triggering GraphRAG indexing.
Example fix
# before embedding_cfg.dim = 0 # after embedding_cfg.dim = 1536
Defensive patterns
Strategy: validation
Validate before calling
if not int(getattr(get_embedding_config(), "dim", 0) or 0):
raise ConfigError("embedding profile needs an explicit dimension") Prevention
- Always populate dim when creating custom embedding profiles.
When it happens
Trigger: An embedding profile was created without a dim field (custom/OpenAI-compatible endpoint where the dimension wasn't probed or specified), then GraphRAG settings are built.
Common situations: Manually edited custom embedding profiles missing dimensions; new/unknown embedding models without metadata; profiles migrated from older versions that didn't track dim.
Related errors
- No active embedding model. Configure one under Settings → Ca
- graphrag_embedding_dimension_mismatch
- graphrag_embedding_provider_unsupported
- No active chat model. Configure one under Settings → Catalog
- graphrag_embedding_probe_failed
AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27).
Data as JSON: /api/errors/2d8faa8ee6bab1b9.
Report an issue: GitHub.