conductor-oss/conductor · error · IllegalArgumentException
SWARM tool name collides with compiler-owned transfer contro
Error message
SWARM tool name collides with compiler-owned transfer control: ${transferName} What it means
Error "SWARM tool name collides with compiler-owned transfer control: ${transferName}" thrown in conductor-oss/conductor.
Source
Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/compiler/MultiAgentCompiler.java:1407
List<ToolConfig> buildTransferToolsFor(
AgentConfig self,
List<AgentConfig> allSwarmAgents,
Map<String, List<String>> swarmTransitions) {
List<ToolConfig> transferTools = new ArrayList<>();
Set<String> declaredToolNames = new HashSet<>();
if (self.getTools() != null) {
for (ToolConfig tool : self.getTools()) {
if (tool.getName() != null) {
declaredToolNames.add(tool.getName());
}
}
}
for (AgentConfig peer : allSwarmAgents) {
if (peer.getName().equals(self.getName())) continue;
if (!isTransitionAllowed(self, peer.getName(), swarmTransitions)) continue;
String transferName = self.getName() + "_transfer_to_" + peer.getName();
if (declaredToolNames.contains(transferName)) {
throw new IllegalArgumentException(
"SWARM tool name collides with compiler-owned transfer control: "
+ transferName);
}
String peerDesc =
peer.getDescription() != null && !peer.getDescription().isEmpty()
? peer.getDescription()
: (peer.getInstructions() instanceof String
? (String) peer.getInstructions()
: "Agent: " + peer.getName());
ToolConfig transferTool =
ToolConfig.builder()
.name(transferName)
.description(
"Transfer the conversation to "
+ peer.getName()
+ ". "
+ peerDesc
+ " Call at most ONE transfer tool per turn.")View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Rename the SWARM tool so it does not collide with the compiler-generated transfer control tool name.
When it happens
Trigger: Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/compiler/MultiAgentCompiler.java:1407 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/7274006d312ed406.
Report an issue: GitHub.