Troubleshooting Engine Timeouts

Engine timeouts are generally caused by either an abnormally large number of files under analysis, or from attempting to analyze a file not typically intended for static analysis.

Below are the steps we recommend taking to troubleshoot engine timeouts.

Exclude Files and Directories

When encountering an engine timeout, we recommend that you start by looking at directories and files you can exclude from your analysis, and marking these in your .codeclimate.yml. Excluding directories from your analysis will cut down on the amount of time individual engines spend analyzing your repository.

In general, we recommend excluding:

  • Third party libraries
  • Production assets, such as minimized or cross-compiled files
  • Vendored files
  • Automated test suites

Here are just a few examples of directories and file types that we recommend excluding from your analysis:

engines:
  brakeman:
    enabled: true
  rubocop:
    enabled: true
  eslint:
    enabled: true

exclude_paths:
# examples of auto-generated exclusions
- db/*
- spec/*
- tests/*
- vendor/*

# examples of third party libraries that should be excluded
- */jquery/*
- */bootstrap/*

# examples of minified files that should be excluded
- **.min.js
- **.min.css

For more information on how to exclude files and directories from our analysis, see our documentation on file and path exclusions.

If you've already committed a .codeclimate.yml which specifies file exclusions, and you are still experiencing an engine timeout, please contact our support team.

Related issues

Broken pull requests and branch analyses

A engine timeout that causes a build to error, can also cause problems for branch and pull request analyses later. For more information about how to troubleshoot this issue, see: Fixing branches and pull requests

First analysis of repository errors

A special condition occurs when your first analysis of the repository errors. For more information see: The first analysis of my repository errored

Troubleshooting Engine Timeouts