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

  1. Recreate or repair the team: re-register the leader agent so the team has a resolvable leader
  2. Dissolve and re-create the team to restore consistency, then start a new worker session
  3. Audit team/member records in storage for dangling leader references
  4. 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

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.