Permission denied

The process tried to read, write, execute, or connect to a resource it does not have permission to access.

permission-denied high confidence runtime

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

  1. Run ls -la on the target file or directory to inspect the current permissions.
  2. Add chmod +x for scripts that need to be executable.
  3. Do not rely on sudo in CI; redesign the step to work without elevated privileges.
  4. 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.

Try it on your own failed log

$ faultline analyze failed.log
Want this across every CI run? Faultline Teams tracks recurring failures across all your repos and surfaces patterns in a shared dashboard.