# Process does not retry when it should

**URL:** <https://community.seqera.io/t/process-does-not-retry-when-it-should/2479>\
**Category:** Ask for help\
**Tags:** nextflow\
**Created:** [November 27, 2025, 4:09am UTC](https://community.seqera.io/t/process-does-not-retry-when-it-should/2479 "2025-11-27T04:09:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![warrenson](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/warrenson/32/1159_2.png) [@warrenson](https://community.seqera.io/u/warrenson)\
**Post date:** [November 27, 2025, 4:09am UTC](https://community.seqera.io/t/process-does-not-retry-when-it-should/2479/1 "2025-11-27T04:09:55Z")

</div>

I have a nextflow process with `errorStrategy = 'retry'` which does not consistently retry when it fails.

With some failures it will retry as expected, up to the retry limit. However, when the process has a different error is does not retry at all.

Are there some types of error that cannot be handled by the directive?

The specific error which fails to trigger the process to retry is when the script tries to do a git commit to a repo and fails because the git file lock is in place (because another process is doing the same and git does not do concurrency).

I was hoping to get the process to keep retrying until the git file lock is removed.

I’m using nextflow. 25.10.0 with Java “openjdk version “17.0.17” 2025-10-21 LTS”

---

<div class="post-metadata">

**Author:** ![mahesh.binzerpanchal](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/mahesh.binzerpanchal/32/253_2.png) [@mahesh.binzerpanchal](https://community.seqera.io/u/mahesh.binzerpanchal)\
**Post date:** [November 27, 2025, 2:40pm UTC](https://community.seqera.io/t/process-does-not-retry-when-it-should/2479/2 "2025-11-27T14:40:39Z")

</div>

Do you check if the exit code is 0? Some tools may fail an operation, but still “succeed” because the exit code is 0. In that case Nextflow won’t know there’s an error. It relies on the tool to return a different exit code ( and `set -e` in the bash directive ).
