theonedev/onedev · error · ExplicitException
Token already used by another agent
Error message
Token already used by another agent
What it means
When an agent connects, its token is used to identify a unique agent; if the token is already registered to a different agent record, the connection is refused to prevent two agents sharing one identity.
Source
Thrown at server-core/src/main/java/io/onedev/server/service/impl/DefaultAgentService.java:206
agent.setName(data.getName());
agent.setCpuCount(data.getCpus());
agent.setIpAddress(data.getIpAddress());
AgentLastUsedDate lastUsedDate = new AgentLastUsedDate();
agent.setLastUsedDate(lastUsedDate);
dao.persist(lastUsedDate);
dao.persist(agent);
for (Map.Entry<String, String> entry: data.getAttributes().entrySet()) {
AgentAttribute attribute = new AgentAttribute();
attribute.setAgent(agent);
attribute.setName(entry.getKey());
attribute.setValue(entry.getValue());
attributeManager.create(attribute);
agent.getAttributes().add(attribute);
}
} else if (agentSessions.containsKey(agent.getId())) {
throw new ExplicitException("Token already used by another agent");
} else {
agent.setName(data.getName());
agent.setOsName(data.getOsInfo().getOsName());
agent.setOsVersion(data.getOsInfo().getOsVersion());
agent.setOsArch(data.getOsInfo().getOsArch());
agent.setIpAddress(data.getIpAddress());
agent.setCpuCount(data.getCpus());
dao.persist(agent);
attributeManager.syncAttributes(agent, data.getAttributes());
}
agentServers.put(agent.getId(), clusterService.getLocalServerAddress());
Session prevSession = agentSessions.put(agent.getId(), session);
if (prevSession != null) {
try {
prevSession.disconnect();
} catch (IOException ignored) {
}View on GitHub (pinned to d44925c47c)
Solutions
- Regenerate a distinct token for this agent and update the agent's config.
- Check for cloned agent containers/VMs reusing the same token.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server-core/src/main/java/io/onedev/server/service/impl/DefaultAgentService.java:206 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/57d45aaa35fa0702.
Report an issue: GitHub.