Skip to main content
For more general information, see how to troubleshoot development.

Overlapping folders

If you have a mount with the same name as a directory you’ve committed to Git or you create such a directory during the build, you get a message like the following:
This shows that the files in Git or from your build aren’t available after the build. The only files that are available are those in your mount. To make the files available in the mount, copy them to a plain directory during the build, then copy them into the mount in the deploy hook.
Do not use /tmp as the intermediate location. /tmp is itself a mount and is not available during the build phase.
  1. In the build hook, move the files to a plain directory (not a mount).
  2. In the deploy hook, use cp to copy the files into the mount.
To see the files without copying them, temporarily remove the mount from your app configuration. Then SSH into your app and view the files. You can then put the mount back in place.

Mounted files not publicly accessible

If you’ve set up mounts to handle files like user uploads, you want to make sure the files are accessible. Do so by managing their location. This example defines two mounts, one named private and one upload:
.upsun/config.yaml
With only this definition, their behavior is the same. To make uploads accessible, define a location with different rules as in the following example:
.upsun/config.yaml

Mounts starting with a dot ignored

Upsun ignores YAML keys that start with a dot. This causes a mount like .myhiddenfolder to be ignored. To mount a directory starting with a dot, put a / at the start of its definition:
.upsun/config.yaml

Disk space issues

If you are worried about how much disk your mounts are using, check the size with the following command:
Last modified on April 29, 2026