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

  1. Check the agent's connectivity status in the Jenkins UI and reconnect if offline
  2. Verify the agent's 'Root Directory' (remote FS) setting is valid and writable
  3. Ensure the agent channel is stable before the build starts (increase channel timeouts for flaky networks)
  4. 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

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


AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14). Data as JSON: /api/errors/46701367579fca98. Report an issue: GitHub.