Cloud Platform

Diagnosing errors with Pipelines

This page describes some of the approaches you can take in determining the causes of errors or other problems with Pipelines. It includes the following sections:

Note

After you fix any detected issues with any pipeline jobs, run the start command again to restart the build.

Pipelines client errors

This section describes several of the common error messages generated by the Pipelines client locally on your computer, along with actions that you can take to resolve them.

Error

Description

[RuntimeException] No credentials found. Configure the client.

You have not yet signed in to Pipelines. For information about obtaining an API token to use with the pipelines configure command, see Configuring the client (authentication) You may find it easier to connect using the Cloud Platform Pipelines user interface instead of the command line.

[RuntimeException] API key not found

The Cloud Platform API key (the n3_key line in ~/.acquia/pipelines/credentials) that you provided to the pipelines configure command is not valid. For information about obtaining an API token to use with the pipelines configure command, see Installing the Pipelines client.

[RuntimeException] Signature not valid

The Cloud Platform API key secret (the n3_secret line in ~/.acquia/pipelines/credentials) that you provided to the pipelines configure command is not valid. For information about obtaining an API token to use with the pipelines configure command, see Installing the Pipelines client.

[RuntimeException] The feature you are trying to access is not enabled on this application.

This Acquia subscription is not set up to use Pipelines. To have this subscription be enabled, contact Acquia Support.

Request failed with status code 403: Forbidden

You do not have the Execute Pipelines permission for the Cloud Platform application that you’re working with. Contact an Administrator or Team lead for this application to provide you that permission, which by default, is granted to users who have been assigned the Team lead or Senior Developer role, but not to users with the Developer role. For more information, see Working with roles and permissions.

System failure

System failure errors may occur if the Pipelines job exceeds maximum memory or time limits. You should refactor your tasks to operate within container limits. If you need additional assistance, contact Acquia Support.

Build errors

After a Pipelines job is complete, the pipelines status command displays if it succeeded or failed. The output of the status command should appear similar to the following:

Job ID: 70daa6d7-c803-42a5-9555-169bd5917d85
Status: succeeded
Summary: Successfully completed the build task.
Your deployment branch is: pipelines-build-master
Site: devcloud:mysite
VCS path: master
Submitted: 2016-08-04 18:50:43 (UTC)
Started: 2016-08-04 18:50:45 (UTC)
Finished: 2016-08-04 18:51:49 (UTC)

The Status line displays the job’s final status. Possible job statuses include the following:

  • succeeded - The job succeeded.

  • build error - Something under your control as a user needs to be fixed.

  • system failure - An internal problem occurred with the Pipelines feature. Contact Acquia Support for assistance.

When a Pipelines job fails with a build error, the Summary line provides additional information about what went wrong. Examples include the following:

  • Summary: Failed to complete the build because there is no acquia-pipelines.yaml build file.

    The repository doesn’t contain a build definition (acquia-pipelines.yaml) file. You may have forgotten to add your build definition file with git commit or you may have forgotten to git push it.

  • Summary: Failed to parse the acquia-pipelines.yaml file.

    The build definition file contains a syntax error. You can use a YAML validator (such as YAML Lint) to determine if there are any errors with your build definition file.

  • Summary: Disk usage exceeded.

    Your job could not complete because it attempted to use more disk space than was allowed.

  • Summary: The SSH key named "my-key" cannot be used because it requires a password.

    The SSH key in your build definition file is encrypted with a password. You can either:

    • Create a new SSH key without a password. For example, use the command ssh-keygen -t rsa ~/.ssh/pipelines.

    • Remove the password from the current key. For example, use the command ssh-keygen -p -f ~/.ssh/id_rsa to remove the password from the file ~/.ssh/id_rsa.

    In either case, you will need to re-add the SSH key to your build definition file with the pipelines encrypt command.

  • Summary: The SSH key named "my-key" is not a valid SSH private key.

    The SSH key in your build definition file is not an SSH key. You may have provided bad data to the pipelines encrypt command when you added it. The correct command to add an SSH key to your build definition file is

    cat ~/.ssh/[name_of_key_file] | pipelines encrypt - --add ssh-keys.my-key
    
  • Summary: Failed to execute the build script.

    A command executed by your build definition file failed. Run the pipelines logs command to see the job output to identify what happened. Adding the set -e command to the beginning of a script that is failing will cause it to display each command before it is executed, helping you to determine which command is failing.

  • Summary: Timed out trying to start the job.

    Your job timed out because it exhausted the number of retries given for a job. The Pipelines logs provides further information about why each retry failed. A common reason being that the number of retries exceeded the concurrency limit.

Composer errors

One common error generated by the Composer program is as follows:

Loading composer repositories with package information
Failed to clone the [email protected]:[repo_name].git repository, try running in
interactive mode so that you can enter your GitHub credentials

In this case, Composer was unable to retrieve the GitHub repository repo_name. This may indicate that the repository requires credentials to allow access. Add an SSH key that has access to the repository to your build definition file using the pipelines encrypt command.