---
title: Feature flags
description: Reference for feature flags in Nextflow.
---

# Feature flags

Feature flags enable opt-in features. They must be specified in the pipeline script.

:::warning
Feature flags marked as *preview* can cause pipelines run with newer versions of Nextflow to fail due to breaking changes. Consult the [migration notes][migrations-page] before updating to a new Nextflow version.
:::

##### `nextflow.enable.configProcessNamesValidation`

<DeprecatedInVersion version="25.10">
Use the [strict parser][strict-syntax-page] instead. It validates process selectors without producing false warnings.
</DeprecatedInVersion>

When `true`, prints a warning for every `withName:` process selector that doesn't match a process in the pipeline (default: `true`).

##### `nextflow.enable.dsl`

<DeprecatedInVersion version="25.04" />

Defines the DSL version to use (`1` or `2`).

##### `nextflow.enable.moduleBinaries`

When `true`, enables the use of module-scoped executable scripts via [module resources][module-resources].

##### `nextflow.enable.strict`

<DeprecatedInVersion version="26.04" />

When `true`, executes the pipeline in "strict" mode, which introduces the following rules:

- When reading a params file, Nextflow will fail if a dynamic param value references an undefined variable

- When merging params from a config file with params from the command line, Nextflow will fail if a param is specified from both sources but with different types

- When using the `join` operator, the `failOnDuplicate` option is `true` regardless of any user setting

- When using the `join` operator, the `failOnMismatch` option is `true` (unless `remainder` is also `true`) regardless of any user setting

- When using the `publishDir` process directive, the `failOnError` option is `true` regardless of any user setting

- In a process definition, Nextflow will fail if an input or output tuple has only one element

- In a process definition, Nextflow will fail if an output emit name is not a valid identifier (i.e. it should match the pattern `/[A-Za-z_][A-Za-z0-9_]*/`)

- During a process execution, Nextflow will fail if a received input tuple does not have the same number of elements as was declared

- During a process execution, Nextflow will fail if the `storeDir` directive is used with non-file outputs

- Nextflow will fail if a pipeline param is referenced before it is defined

- Nextflow will fail if multiple functions and/or processes with the same name are defined in a module script

##### `nextflow.enable.types`

<AddedInVersion version="26.04"/>

*Preview feature: the syntax and behavior may change in future releases.*

When `true`, enables the use of [typed processes][process-typed-page] and [typed workflows][workflow-typed-page]. Must be enabled in every script that uses typed processes/workflows. Legacy processes/workflows cannot be defined in scripts with this flag enabled.

[channel-topic]: ./stdlib-namespaces/channel#topic
[migrations-page]: ../migrations/25-10
[module-resources]: ../modules/developing-modules#resources
[process-typed-page]: ../process-typed
[strict-syntax-page]: ../strict-syntax
[workflow-output-def]: ../workflow#outputs
[workflow-recursion]: ../workflow#process-and-workflow-recursion
[workflow-typed-page]: ../workflow-typed
