fix(core): descriptive error for empty message_ids instead of IndexError (#9464)
fix(core): replace IndexError with descriptive error for empty message_ids Agent with no in-context messages (empty/None message_ids) would crash with a cryptic IndexError on message_ids[0]. Now raises a clear LettaError explaining the system message was not initialized. Datadog: https://us5.datadoghq.com/error-tracking/issue/6c061c28-0830-11f1-b060-da7ad0900000 🐾 Generated with [Letta Code](https://letta.com) Co-authored-by: Letta <noreply@letta.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import xml.etree.ElementTree as ET
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from letta.errors import PendingApprovalError
|
||||
from letta.errors import LettaError, PendingApprovalError
|
||||
from letta.helpers import ToolRulesSolver
|
||||
from letta.helpers.datetime_helpers import get_utc_time
|
||||
from letta.log import get_logger
|
||||
@@ -233,6 +233,11 @@ async def _prepare_in_context_messages_no_persist_async(
|
||||
current_in_context_messages = [system_message]
|
||||
else:
|
||||
# Default mode: load messages from agent_state.message_ids
|
||||
if not agent_state.message_ids:
|
||||
raise LettaError(
|
||||
message=f"Agent {agent_state.id} has no in-context messages. "
|
||||
"This typically means the agent's system message was not initialized correctly.",
|
||||
)
|
||||
if agent_state.message_buffer_autoclear:
|
||||
# If autoclear is enabled, only include the most recent system message (usually at index 0)
|
||||
current_in_context_messages = [
|
||||
|
||||
Reference in New Issue
Block a user