agentscope-ai/agentscope · error · HTTPException
Team {team.id!r} has no resolvable leader; worker session {s
Error message
Team {team.id!r} has no resolvable leader; worker session {session_id!r} cannot run. What it means
A defensive 409 raised in _run_impl when resolving the leader of a team returns None for a worker session. Normally impossible: deleting a leader dissolves the team, so a team without a resolvable leader indicates inconsistent persisted data (e.g. partial deletion, manual DB edits, or a migration bug). The worker session cannot run because leader routing is required.
Source
Thrown at src/agentscope/app/_service/_chat.py:735
# nothing to be a member of, so run teamless.
logger.warning(
"Session %r points at team %r which no longer "
"exists; running teamless.",
session_id,
session_record.team_id,
)
elif team.session_id == session_record.id:
team_ctx = _LeaderContext()
else:
leader = await _resolve_team_leader(
self._storage,
user_id,
team,
)
if leader is None:
# Unreachable while the data is consistent:
# deleting a leader dissolves the team.
raise HTTPException(
status_code=409,
detail=(
f"Team {team.id!r} has no resolvable "
f"leader; worker session "
f"{session_id!r} cannot run."
),
)
team_ctx = _WorkerContext(
leader_session_id=leader.session_id,
leader_agent_id=leader.agent.id,
leader_name=leader.name,
)
workspace = await self._workspace_manager.get_workspace(
user_id,
agent_id,
session_id,
session_record.config.workspace_id,View on GitHub (pinned to e90f1c7592)
Solutions
- Recreate or repair the team: re-register the leader agent so the team has a resolvable leader
- Dissolve and re-create the team to restore consistency, then start a new worker session
- Audit team/member records in storage for dangling leader references
- If it recurs, check for concurrent deletion races or manual DB edits and upgrade to the latest version
Example fix
# before await chat_service.run(user_id, worker_agent_id, session_id, ...) # 409 # after: repair team leadership first team = await team_service.recreate_with_leader(team_id, leader_agent_id) await chat_service.run(user_id, worker_agent_id, session_id, ...)
Defensive patterns
Strategy: fallback
Validate before calling
team = await team_client.get_team(agent_id=worker_agent_id)
if team is None or not await team_client.has_resolvable_leader(team.id):
team = await team_client.recreate_with_leader(...)
await chat_client.run(user_id, worker_agent_id, session_id, ...) Try / catch
try:
await chat_service.run(user_id, agent_id, session_id, ...)
except HTTPStatusError as e:
if e.response.status_code == 409 and "no resolvable leader" in e.response.text:
await repair_team_leadership(agent_id)
await chat_service.run(user_id, agent_id, session_id, ...)
else:
raise Prevention
- Avoid manual edits to team/member tables; use the API
- Monitor for dangling leader references after deletions or migrations
- Upgrade to the latest version to pick up team-dissolution fixes
When it happens
Trigger: Running a worker-agent session whose team record's leader member is missing or unresolvable in storage. Essentially only occurs with data inconsistency rather than a normal API mistake.
Common situations: Concurrent leader deletion and run start racing past the dissolve step; out-of-band database modifications; bugs in older versions' team-dissolution logic; restoring a partial DB backup.
Related errors
AI-assisted analysis of agentscope-ai/agentscope@e90f1c7592 (2026-08-28).
Data as JSON: /api/errors/7d34426ae56dea4f.
Report an issue: GitHub.