Troubleshooting deployments

It may sometimes happen that you push your code into our repository, but no matter how long you wait, the changes seem not to reach the webserver. There are many reasons why this can happen, this article shows you how you can find out what happend and what to do about it.

The deploy.log file

If you have trouble deploying your code, log in to the shell box and change the working directory to .deploy. You’ll find a couple of files and a directory there that shouldn’t matter much to you, but the deploy.log file that resides there can be an interesting source for information about what went wrong during deployment.

Read below what you may find there, what it means and how you possibly can solve it yourself, without having to wait for our support.

WARN -- : No Boxfile

Depending on how you want to use your site, this may be perfectly okay. If you’re using asset files that you copy to the shell box or if your cluster has more than one webserver it is certainly not, see Boxfile.

In most cases this means that you defined a shared folder in your Boxfile, but you also checked that folder in along with your code. Our deployment system then tries to create a symlink with the name of that folder, and can’t do that because the target already exists. The solution is to remove the folder from the code repository and push again.

To remove the file or directory you can remove it from git repository tracking.

A common one is the sites/default/files directory in Drupal. Run these commands to remove it from git, but keep your files locally so you can upload them via SSH/SFTP to the shell box:

echo docroot/sites/default/files >> .gitignore
$ git rm --cached docroot/sites/default/files
$ git commit docroot/sites/default/files .gitignore -m "Remove directory from git"

Push this change and the error shouldn’t happen again.

FATAL -- : Lockfile exists

This is very rare and indicates a bug in our deployment system. Due to the fact that you don’t have access to the web servers, it is unlikely that you can fix this by youself. Use the dashboard to open a support request and provide us with the last 5-10 lines of the deploy.log, we’ll fix that.

ERROR -- : Environment-specific file FILE does not exist

This happens when you made an entry into the Boxfile that points to a file our deployment system should create a symlink to, but that file is not checked in along with the code. E.g., if you have a reference to htpasswd.staging in your Boxfile, you must either check in that file or remove the entry from the Boxfile.

FATAL -- : Failed changing attributes of FILE: Operation not permitted

Another very rare case where filesystem permissions have changed in a way that prevents the deployment system from working.
Please open a support request.

FATAL -- : Branch BRANCH does not exist.

This happens when you set the branch of that site in the dashboard to a value that does not exist in the repository you just pushed. You need either to fix the value in the dashboard, or checkout the correct branch, and push again.