odysseus-dev/odysseus · error · HTTPException
No model configured for compaction
Error message
No model configured for compaction
What it means
Error "No model configured for compaction" thrown in odysseus-dev/odysseus.
Source
Thrown at routes/session_routes.py:995
# Keep a small recent tail verbatim. The prior half-chat/20-message
# tail made manual compaction look like it did nothing on normal chats.
recent_keep = min(8, max(4, len(history) // 4))
older = history[:-recent_keep]
recent = history[-recent_keep:]
if not older:
raise HTTPException(400, "Nothing old enough to compact")
from src.context_compactor import SELF_SUMMARY_SYSTEM_PROMPT
from src.endpoint_resolver import resolve_endpoint
from src.llm_core import llm_call_async
owner = getattr(session, "owner", None) or effective_user(request)
url, model, headers = resolve_endpoint("utility", owner=owner)
if not url or not model:
url, model, headers = session.endpoint_url, session.model, session.headers
if not url or not model:
raise HTTPException(400, "No model configured for compaction")
prior_compactions = sum(
1 for m in history
if _message_metadata(m).get("compacted") or "[Conversation summary" in _message_text(m)
)
prompt = SELF_SUMMARY_SYSTEM_PROMPT.replace(
"{count}", str(len(older))
).replace(
"{n}", str(prior_compactions + 1)
)
convo_text = "\n".join(
f"{_message_role(m).upper()}: {_message_text(m)[:2000]}"
for m in older
)
try:
summary = await llm_call_async(
url,
model,View on GitHub (pinned to f9235ebbf1)
Solutions
- Set a default or utility model in Settings for compaction.
- Configure a model endpoint before running compaction.
When it happens
Trigger: Triggered when the corresponding server-side validation or runtime check at the recorded location rejects the request or operation and returns this error message to the caller.
Common situations: See trigger scenarios.
AI-assisted analysis of odysseus-dev/odysseus@f9235ebbf1 (2026-08-14).
Data as JSON: /api/errors/2ece2b6e4cbba14a.
Report an issue: GitHub.