Matched signals
- permission denied
- operation not permitted
- EACCES
- EPERM
- access denied
- insufficient permissions
- cannot create directory
- ERROR 1045
Permission denied
What this failure means
The process tried to read, write, execute, or connect to a resource it does not have permission to access.
Symptoms
Faultline looks for one or more of these log fragments:
permission denied
operation not permitted
EACCES
EPERM
access denied
insufficient permissions
cannot create directory
ERROR 1045
Diagnosis
The process tried to read, write, execute, or connect to a resource it does not have permission to access.
Fix steps
- Run
ls -laon the target file or directory to inspect the current permissions. - Add
chmod +xfor scripts that need to be executable. - Do not rely on
sudoin CI; redesign the step to work without elevated privileges. - For file system paths, ensure the CI user owns or has the correct group access.
Validation
- Re-run the failing workflow step.
- Confirm the original failure signature for Permission denied is gone.
Why it matters
CI runners run as a non-root user by default (as they should). Scripts or tools that assume root or rely on specific file ownership break in this environment. Files checked out from Git sometimes lose their executable bit.
Prevention
- Store file permissions in Git for executable scripts:
git update-index --chmod=+x script.sh. - Design CI jobs to run with the minimum required permissions.
- Audit steps that modify the file system and verify they account for non-root users.
- Prefer images and scripts that assume non-root execution from the start so permission problems surface during local development too.
Try it locally
ls -la <path>
ls -la <path>
How Faultline detects it
Use faultline explain permission-denied to see the full playbook.
faultline analyze build.log
faultline explain permission-denied
Generated from playbooks/bundled/log/runtime/permission-denied.yaml. Do not edit directly.