jenkinsci/jenkins · error · AbortException
{0} seems to be offline
Error message
{0} seems to be offline What it means
Thrown by decideWorkspace() when a custom workspace is configured and n.getRootPath() returns null. A null root path means Jenkins cannot resolve the agent's root filesystem path — the agent channel is dead or the node is effectively offline. The AbortException surfaces the node's display name so the operator knows which node failed.
Source
Thrown at core/src/main/java/hudson/model/AbstractBuild.java:453
public BuildListener getListener() {
return listener;
}
/**
* Allocates the workspace from {@link WorkspaceList}.
*
* @param n
* Passed in for the convenience. The node where the build is running.
* @param wsl
* Passed in for the convenience. The returned path must be registered to this object.
*/
protected Lease decideWorkspace(@NonNull Node n, WorkspaceList wsl) throws InterruptedException, IOException {
String customWorkspace = getProject().getCustomWorkspace();
if (customWorkspace != null) {
FilePath rootPath = n.getRootPath();
if (rootPath == null) {
throw new AbortException(n.getDisplayName() + " seems to be offline");
}
// we allow custom workspaces to be concurrently used between jobs.
return Lease.createDummyLease(rootPath.child(getEnvironment(listener).expand(customWorkspace)));
}
// TODO: this cast is indicative of abstraction problem
FilePath ws = n.getWorkspaceFor((TopLevelItem) getProject());
if (ws == null) {
throw new AbortException(n.getDisplayName() + " seems to be offline");
}
return wsl.allocate(ws, getBuild());
}
@NonNull
@Override
public Result run(@NonNull BuildListener listener) throws Exception {
final Node node = getCurrentNode();
assert builtOn == null;View on GitHub (pinned to 2e228ff40b)
Solutions
- Check the agent's connectivity status in the Jenkins UI and reconnect if offline
- Verify the agent's 'Root Directory' (remote FS) setting is valid and writable
- Ensure the agent channel is stable before the build starts (increase channel timeouts for flaky networks)
- If using custom workspaces, confirm the agent can actually resolve and access its root path
Defensive patterns
Strategy: validation
Validate before calling
FilePath root = node.getRootPath();
if (root == null) {
throw new AbortException(node.getDisplayName() + " root path unavailable; node likely offline");
} Try / catch
try {
// workspace allocation / build run
} catch (AbortException e) {
if (e.getMessage().endsWith("seems to be offline")) {
// retry or reassign to another node
}
throw e;
} Prevention
- Verify agents are online before queueing builds on them
- Validate the agent remote root directory is set and accessible
- Monitor agent channel health and reconnect stale channels
When it happens
Trigger: decideWorkspace(n, wsl) is called with getProject().getCustomWorkspace() != null; n.getRootPath() returns null (agent channel disconnected or node root path not configured).
Common situations: Agent went offline between allocation and workspace setup; agent root directory is misconfigured or points to an inaccessible path; the agent JVM crashed or the network channel dropped after the executor was assigned.
Related errors
- Failed to join the process
- no longer a configured node for {0}
- Failed to retrieve command result in time: {}
- Failed to unpack %s (%d bytes read)
- remote file operation failed
AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14).
Data as JSON: /api/errors/46701367579fca98.
Report an issue: GitHub.