iflytek/astron-agent · error · CustomException
EVENT_REGISTRY_NOT_FOUND_ERROR
EVENT_REGISTRY_NOT_FOUND_ERROR
Error message
{CodeEnum.EVENT_REGISTRY_NOT_FOUND_ERROR.msg} What it means
qa_fetch_resume_data() looks up the node's paused event in the EventRegistry by event_id; if the registry returns None it raises EVENT_REGISTRY_NOT_FOUND_ERROR. The workflow cannot resume the question-answer node because the event it paused on is no longer registered (e.g. lost due to restart or expiry).
Solutions
- Re-run or re-trigger the question-answer node so a fresh event is registered, then resume with the new event_id
- Check EventRegistry persistence/TTL configuration if events should survive restarts
- Verify the event_id used in the resume call matches the one emitted during the interrupt
Defensive patterns
Strategy: try-catch
Validate before calling
# check the event still exists before attempting resume event = EventRegistry().get_event(event_id=evt_id) if event is None: retrigger_qa_node()
Try / catch
try:
data = await node.qa_fetch_resume_data()
except CustomException as e:
if e.code == CodeEnum.EVENT_REGISTRY_NOT_FOUND_ERROR:
retrigger_qa_node() # event expired/lost; start a fresh interaction Prevention
- Persist event registry state or set TTLs longer than expected user response times
- Always resume with the exact event_id emitted at interrupt time
- Alert users before event timeouts expire
When it happens
Trigger: Resuming a paused QA node (via handle_prompt_template_response or async_execute) with an event_id that has no registered event — the registry entry was evicted, expired, or never created because the process restarted.
Common situations: Service restart/crash losing in-memory or unexpired registry state, user replying after the event timed out and was cleaned up, or a corrupted event_id passed in the resume callback.
Understand the failure class
Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.
Related errors
AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12).
Data as JSON: /api/errors/e4ac1f1ce800bd7a.
Report an issue: GitHub.
Appendix: source
Thrown at core/workflow/engine/nodes/question_answer/question_answer_node.py:323
)
await span_context.add_info_events_async(
{"interrupt option": json.dumps(interrupt_options, ensure_ascii=False)}
)
return interrupt_options
async def qa_fetch_resume_data(self, span_context: Span) -> ResumeData:
"""
Asynchronously fetch resume data
:param span_context: Context object for tracking and recording events
:return: ResumeData object containing event type, content, retries, and timestamp
:raises CustomException: When specific errors occur
"""
try:
event = EventRegistry().get_event(event_id=self.event_id)
if event is None:
raise CustomException(
err_code=CodeEnum.EVENT_REGISTRY_NOT_FOUND_ERROR,
err_msg=CodeEnum.EVENT_REGISTRY_NOT_FOUND_ERROR.msg,
cause_error="Event does not exist",
)
res = await EventRegistry().fetch_resume_data(
queue_name=event.get_node_q_name(), timeout=event.timeout
)
if res:
msg_str = res.get("message", "")
message: Dict[str, Any] = json.loads(msg_str)
metadata = res.get("metadata", {})
resume_data = ResumeData(
event_type=message.get("event_type", ""),
content=message.get("content", ""),
retries=int(metadata.get("retries", "0")),
timestamp=int(metadata.get("timestamp", "0")),
)
await span_context.add_info_events_async(View on GitHub (pinned to 5e758547a8)