What Happened
CraftBot research subagents failed to return the results of a designated task and exhausted the iteration cap, each iteration returning Invalid status for sub_task_end. Use 'completed' or 'failed'.
What I expected
Subagents should return the results of a task without status error
How to test
- Ask CraftBot to retrieve date/time without online searching
- Read logs for each subagent
Logs
2026-07-03 10:33:05.136 | INFO | app.subagent.runner:run_to_completion:111 - [SubAgentRunner] starting sub_e9dfec92 type=research_agent max_iter=30 max_wall=450s
2026-07-03 10:33:05.170 | INFO | agent_core.core.impl.llm.interface:create_session_cache:724 - [SESSION] Registered session for sub_e9dfec92:LLMCallType.ACTION_SELECTION (provider: byteplus)
2026-07-03 10:33:05.207 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:981 - [LLM SESSION] task=sub_e9dfec92 call_type=LLMCallType.ACTION_SELECTION | user=QUERY FROM SPAWNING AGENT:
DO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full current datetime including timezone, no other text.
YOUR EVENT LOG SO FAR (most recent last):
Recent Event:
10:33:05 [datetime]: 2026-07-03 10:33 (Asia/Tokyo)
10:33:05 [subagent_start]: Sub-agent of type 'research_agent' started.
Query: DO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full current datetime including timezone, no other text.
Decide your next action now. Reply with the JSON object only.
2026-07-03 10:33:05.215 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:1338 - [SESSION CACHE] Creating new session for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:05.222 | INFO | agent_core.core.impl.llm.cache.byteplus:create_session_cache:308 - [CACHE] Creating session cache for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:05.223 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:141 - [BYTEPLUS REQUEST] URL: https://ark.ap-southeast.bytepluses.com/api/v3/responses
2026-07-03 10:33:05.226 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:142 - [BYTEPLUS REQUEST] Payload: {'model': 'seed-2-0-pro-260328', 'input': [{'role': 'system', 'content': 'You are a research sub-agent.\n\nYour only purpose is to gather information from external references and\nreport it back as a dense, source-cited brief. You have no memory of past\nconversations and no ac...'}, {'role': 'user', 'content': 'QUERY FROM SPAWNING AGENT:\nDO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full c...'}], 'temperature': 0.0, 'max_output_tokens': 8000, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}}
2026-07-03 10:33:07.717 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:149 - [BYTEPLUS RESPONSE] Status: 200
2026-07-03 10:33:07.718 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:154 - [BYTEPLUS RESPONSE] Body: {'created_at': 1783042387, 'id': 'resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74', 'max_output_tokens': 8000, 'model': 'seed-2-0-pro-260328', 'object': 'response', 'output': [{'id': 'rs_02178304238715500000000000000000000ffffc0a8afcfae7ade', 'type': 'reasoning', 'summary': [{'type': 'summary_text', 'text': "I'll return the datetime from event log to complete the task.Task completed with datetime 2026-07-03 10:33 (Asia/Tokyo)"}], 'status': 'completed'}, {'type': 'message', 'role': 'assistant', 'content': [{'type': 'output_text', 'text': '{\n "reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",\n "action_name": "sub_task_end",\n "params": {\n "status": "completed",\n "result": "2026-07-03 10:33 (Asia/Tokyo)"\n }\n}'}], 'status': 'completed', 'id': 'msg_02178304238765400000000000000000000ffffc0a8afcff3a479'}], 'service_tier': 'default', 'status': 'completed', 'temperature': 0, 'usage': {'input_tokens': 3538, 'output_tokens': 147, 'total_tokens': 3685, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens_details': {'reasoning_tokens': 58}}, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}, 'store': True, 'expire_at': 1783301586}
2026-07-03 10:33:07.722 | INFO | agent_core.core.impl.llm.cache.byteplus:create_session_cache:325 - [CACHE] Created session cache resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74 for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:07.723 | INFO | agent_core.core.impl.llm.cache.metrics:record_miss:104 - [CACHE METRICS] byteplus/session: MISS (total=3538, hit_rate=82.2%)
2026-07-03 10:33:07.724 | INFO | agent_core.core.impl.llm.interface:_process_session_response:1412 - BYTEPLUS SESSION RESPONSE for sub_e9dfec92:LLMCallType.ACTION_SELECTION: {'created_at': 1783042387, 'id': 'resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74', 'max_output_tokens': 8000, 'model': 'seed-2-0-pro-260328', 'object': 'response', 'output': [{'id': 'rs_02178304238715500000000000000000000ffffc0a8afcfae7ade', 'type': 'reasoning', 'summary': [{'type': 'summary_text', 'text': "I'll return the datetime from event log to complete the task.Task completed with datetime 2026-07-03 10:33 (Asia/Tokyo)"}], 'status': 'completed'}, {'type': 'message', 'role': 'assistant', 'content': [{'type': 'output_text', 'text': '{\n "reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",\n "action_name": "sub_task_end",\n "params": {\n "status": "completed",\n "result": "2026-07-03 10:33 (Asia/Tokyo)"\n }\n}'}], 'status': 'completed', 'id': 'msg_02178304238765400000000000000000000ffffc0a8afcff3a479'}], 'service_tier': 'default', 'status': 'completed', 'temperature': 0, 'usage': {'input_tokens': 3538, 'output_tokens': 147, 'total_tokens': 3685, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens_details': {'reasoning_tokens': 58}}, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}, 'store': True, 'expire_at': 1783301586}
2026-07-03 10:33:07.744 | INFO | app.usage.task_attribution:attribute_usage_to_current_task:41 - [TOKEN_ATTR] task=05a87d +in=3538 +out=147 +cached=0 -> totals: in=55125 out=1554 cache=33214
2026-07-03 10:33:07.750 | INFO | agent_core.core.impl.llm.interface:_finalize_session_response:935 - [LLM RECV] {
"reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",
"action_name": "sub_task_end",
"params": {
"status": "completed",
"result": "2026-07-03 10:33 (Asia/Tokyo)"
}
}
2026-07-03 10:33:07.753 | INFO | agent_core.core.impl.action.manager:execute_action:330 - Action sub_task_end marked as in-flight.
2026-07-03 10:33:07.757 | INFO | agent_core.core.impl.action.manager:execute_action:454 - Action sub_task_end completed with status: error.
2026-07-03 10:33:07.847 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:981 - [LLM SESSION] task=sub_e9dfec92 call_type=LLMCallType.ACTION_SELECTION | user=NEW EVENTS SINCE LAST TURN:
10:33:07 [action_start]: Running action sub_task_end with input: {
"_session_id": "sub_e9dfec92"
}.
10:33:07 [action_end]: Action sub_task_end completed with output: {
"status": "error",
"message": "Invalid status for sub_task_end. Use 'completed' or 'failed'."
}.
What Happened
CraftBot research subagents failed to return the results of a designated task and exhausted the iteration cap, each iteration returning
Invalid status for sub_task_end. Use 'completed' or 'failed'.What I expected
Subagents should return the results of a task without status error
How to test
Logs
2026-07-03 10:33:05.136 | INFO | app.subagent.runner:run_to_completion:111 - [SubAgentRunner] starting sub_e9dfec92 type=research_agent max_iter=30 max_wall=450s
2026-07-03 10:33:05.170 | INFO | agent_core.core.impl.llm.interface:create_session_cache:724 - [SESSION] Registered session for sub_e9dfec92:LLMCallType.ACTION_SELECTION (provider: byteplus)
2026-07-03 10:33:05.207 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:981 - [LLM SESSION] task=sub_e9dfec92 call_type=LLMCallType.ACTION_SELECTION | user=QUERY FROM SPAWNING AGENT:
DO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full current datetime including timezone, no other text.
YOUR EVENT LOG SO FAR (most recent last):
Recent Event:
10:33:05 [datetime]: 2026-07-03 10:33 (Asia/Tokyo)
10:33:05 [subagent_start]: Sub-agent of type 'research_agent' started.
Query: DO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full current datetime including timezone, no other text.
Decide your next action now. Reply with the JSON object only.
2026-07-03 10:33:05.215 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:1338 - [SESSION CACHE] Creating new session for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:05.222 | INFO | agent_core.core.impl.llm.cache.byteplus:create_session_cache:308 - [CACHE] Creating session cache for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:05.223 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:141 - [BYTEPLUS REQUEST] URL: https://ark.ap-southeast.bytepluses.com/api/v3/responses
2026-07-03 10:33:05.226 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:142 - [BYTEPLUS REQUEST] Payload: {'model': 'seed-2-0-pro-260328', 'input': [{'role': 'system', 'content': 'You are a research sub-agent.\n\nYour only purpose is to gather information from external references and\nreport it back as a dense, source-cited brief. You have no memory of past\nconversations and no ac...'}, {'role': 'user', 'content': 'QUERY FROM SPAWNING AGENT:\nDO NOT make any external network calls, DO NOT perform any online search. ONLY retrieve current date and time from the local system environment clock. Return ONLY the full c...'}], 'temperature': 0.0, 'max_output_tokens': 8000, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}}
2026-07-03 10:33:07.717 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:149 - [BYTEPLUS RESPONSE] Status: 200
2026-07-03 10:33:07.718 | INFO | agent_core.core.impl.llm.cache.byteplus:_call_responses_api:154 - [BYTEPLUS RESPONSE] Body: {'created_at': 1783042387, 'id': 'resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74', 'max_output_tokens': 8000, 'model': 'seed-2-0-pro-260328', 'object': 'response', 'output': [{'id': 'rs_02178304238715500000000000000000000ffffc0a8afcfae7ade', 'type': 'reasoning', 'summary': [{'type': 'summary_text', 'text': "I'll return the datetime from event log to complete the task.Task completed with datetime 2026-07-03 10:33 (Asia/Tokyo)"}], 'status': 'completed'}, {'type': 'message', 'role': 'assistant', 'content': [{'type': 'output_text', 'text': '{\n "reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",\n "action_name": "sub_task_end",\n "params": {\n "status": "completed",\n "result": "2026-07-03 10:33 (Asia/Tokyo)"\n }\n}'}], 'status': 'completed', 'id': 'msg_02178304238765400000000000000000000ffffc0a8afcff3a479'}], 'service_tier': 'default', 'status': 'completed', 'temperature': 0, 'usage': {'input_tokens': 3538, 'output_tokens': 147, 'total_tokens': 3685, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens_details': {'reasoning_tokens': 58}}, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}, 'store': True, 'expire_at': 1783301586}
2026-07-03 10:33:07.722 | INFO | agent_core.core.impl.llm.cache.byteplus:create_session_cache:325 - [CACHE] Created session cache resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74 for sub_e9dfec92:LLMCallType.ACTION_SELECTION
2026-07-03 10:33:07.723 | INFO | agent_core.core.impl.llm.cache.metrics:record_miss:104 - [CACHE METRICS] byteplus/session: MISS (total=3538, hit_rate=82.2%)
2026-07-03 10:33:07.724 | INFO | agent_core.core.impl.llm.interface:_process_session_response:1412 - BYTEPLUS SESSION RESPONSE for sub_e9dfec92:LLMCallType.ACTION_SELECTION: {'created_at': 1783042387, 'id': 'resp_02178304238596539debe34dc0faea573b1e9db2da7e27bc15b74', 'max_output_tokens': 8000, 'model': 'seed-2-0-pro-260328', 'object': 'response', 'output': [{'id': 'rs_02178304238715500000000000000000000ffffc0a8afcfae7ade', 'type': 'reasoning', 'summary': [{'type': 'summary_text', 'text': "I'll return the datetime from event log to complete the task.Task completed with datetime 2026-07-03 10:33 (Asia/Tokyo)"}], 'status': 'completed'}, {'type': 'message', 'role': 'assistant', 'content': [{'type': 'output_text', 'text': '{\n "reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",\n "action_name": "sub_task_end",\n "params": {\n "status": "completed",\n "result": "2026-07-03 10:33 (Asia/Tokyo)"\n }\n}'}], 'status': 'completed', 'id': 'msg_02178304238765400000000000000000000ffffc0a8afcff3a479'}], 'service_tier': 'default', 'status': 'completed', 'temperature': 0, 'usage': {'input_tokens': 3538, 'output_tokens': 147, 'total_tokens': 3685, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens_details': {'reasoning_tokens': 58}}, 'caching': {'type': 'enabled'}, 'text': {'format': {'type': 'json_object'}}, 'store': True, 'expire_at': 1783301586}
2026-07-03 10:33:07.744 | INFO | app.usage.task_attribution:attribute_usage_to_current_task:41 - [TOKEN_ATTR] task=05a87d +in=3538 +out=147 +cached=0 -> totals: in=55125 out=1554 cache=33214
2026-07-03 10:33:07.750 | INFO | agent_core.core.impl.llm.interface:_finalize_session_response:935 - [LLM RECV] {
"reasoning": "Current system datetime is already available in the event log, no external calls required. Returning the retrieved value directly.",
"action_name": "sub_task_end",
"params": {
"status": "completed",
"result": "2026-07-03 10:33 (Asia/Tokyo)"
}
}
2026-07-03 10:33:07.753 | INFO | agent_core.core.impl.action.manager:execute_action:330 - Action sub_task_end marked as in-flight.
2026-07-03 10:33:07.757 | INFO | agent_core.core.impl.action.manager:execute_action:454 - Action sub_task_end completed with status: error.
2026-07-03 10:33:07.847 | INFO | agent_core.core.impl.llm.interface:_generate_response_with_session_sync:981 - [LLM SESSION] task=sub_e9dfec92 call_type=LLMCallType.ACTION_SELECTION | user=NEW EVENTS SINCE LAST TURN:
10:33:07 [action_start]: Running action sub_task_end with input: {
"_session_id": "sub_e9dfec92"
}.
10:33:07 [action_end]: Action sub_task_end completed with output: {
"status": "error",
"message": "Invalid status for sub_task_end. Use 'completed' or 'failed'."
}.