Atlassian strives to provide high quality and evolving products to our customers. With this in mind, we've made the decision to discontinue our Bamboo Cloud offering on 31 January 2017. Learn more

Troubleshooting Builds

Builds in Bamboo are exactly the same as how they would be executed via command line.

Bamboo Build Process

Bamboo forks off a new process for each build, and tries to reproduce the user's environment by passing down all the System and PATH variables to the build.

The new process is created using the Apache Ant Execute Task as below:

  For the more curious, Bamboo uses Apache Ant Execute Task to fork the build process.
     * Execute the command line in a specific directory.
     * @param buildContext The BuildContext for the current build
     * @param commandExecuteStreamHandler Stream Handler for the output of the execute command
     * @param extraEnvironmentVariables environment variable additional to those already in the env (e.g provided by the user via UI)
     * @param javaHome The java home value for this command
     * @param capabilitySet Capability set
     * @return -1 if the command failed
     * @throws CommandException Failure
    public int executeCommand(final @NotNull BuildContext buildContext, final @NotNull CommandExecuteStreamHandler commandExecuteStreamHandler, String extraEnvironmentVariables, String javaHome, ReadOnlyCapabilitySet capabilitySet) throws CommandException
        final BuildLogger buildLogger = buildLoggerManager.getBuildLogger(buildContext.getBuildResultKey());

        Commandline commandline = getSubstitutedCommandLine(buildContext, buildLogger, capabilitySet);

        extraEnvironmentVariables = substitutionBean.substituteBambooVariables(extraEnvironmentVariables, buildContext, buildLogger);

        Execute execute = new Execute(commandExecuteStreamHandler);

        String[] defaultEnvironmentVars = getEnvironmentSetting(extraEnvironmentVariables, javaHome);

        String[] customEnvironmentVars = getCustomEnvironmentVars(capabilitySet);
        if (customEnvironmentVars != null && customEnvironmentVars.length > 0)
            defaultEnvironmentVars = (String[]) ArrayUtils.addAll(defaultEnvironmentVars, customEnvironmentVars);



        if (ArrayUtils.contains(defaultEnvironmentVars, "BAMBOO_DEBUG_BUILD=true"))
            debugBuildEnvironment(buildContext, buildLogger, execute);

            return execute.execute();
        catch (Exception e)
            log.warn("Failed to execute command", e);
            throw new CommandException(e.getMessage(), e);

Debugging Failing Builds

If you haven't done so already, please run your build outside of Bamboo via command line as the user running the Bamboo process and confirm that build is successful.

Navigate to your local working directory BAMBOO_HOME/xml-data/build-dir/PLAN_KEY and try executing your build manually.

For E.g, if this is a Maven build then please supply the appropriate goal: mvn clean install

Please ensure that the following criteria have been met:

  • Ensure that Bamboo is running as the local user and the user executing the build via commandline owns the Bamboo process.

    Bamboo Service on Windows

    Bamboo will install itself as the SYSTEM user on Windows, ensure that you have configured Bamboo to run as the local Windows user

  • If the failing build is being executed on a remote agent, ensure that it can be executed successfully on the remote agent as the Bamboo user.
  • If your build has specific dependencies or requires you to set Environment Variables, ensure that the variables/dependencies are available to your build.
  • If your JAVA build is failing due to memory errors, then please try increasing memory allocated to your build.

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport