Skip to content

Incorrect error report when manifest.contributors contribution entry does not match enum #6552

@prototaxites

Description

@prototaxites

Bug report

With Nextflow 25.10, if the value of the contribution key in a contributor map in manifest.contributors doesn't match the enum, you get an incorrect error:

Invalid config option `manifest.contributors` -- should be a list of maps

Expected behavior and actual behavior

The error should explain that the value does not match the enum, something like:

Invalid config option `manifest.contributors` -- `contributon` is not a valid key for `contributor`.

Steps to reproduce the problem

git clone [email protected]:nf-core/demo.git && cd demo
sed -i '' "s/'contributor'/'contributon'/" nextflow.config ## macos
sed -i "s/'contributor'/'contributon'/" nextflow.config ## linux

nextflow run . -profile test,docker --outdir results

Program output

Nov-10 17:02:32.744 [main] DEBUG nextflow.cli.Launcher - $> nextflow run . -profile test --outdir results
Nov-10 17:02:32.776 [main] DEBUG nextflow.cli.CmdRun - N E X T F L O W  ~  version 25.10.0
Nov-10 17:02:33.178 [main] DEBUG nextflow.cli.Launcher - Operation aborted
nextflow.exception.AbortOperationException: Invalid config option `manifest.contributors` -- should be a list of maps
	at nextflow.config.Manifest.parseContributors(Manifest.groovy:174)
	at nextflow.config.Manifest.<init>(Manifest.groovy:146)
	at nextflow.scm.AssetManager.getManifest0(AssetManager.groovy:469)
	at nextflow.scm.AssetManager.memoizedMethodPriv$getManifest(AssetManager.groovy:441)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
	at groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1339)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1094)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
	at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:645)
	at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:628)
	at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:82)
	at nextflow.scm.AssetManager$_closure2.doCall(AssetManager.groovy)
	at nextflow.scm.AssetManager$_closure2.doCall(AssetManager.groovy)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:280)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
	at groovy.lang.Closure.call(Closure.java:433)
	at org.codehaus.groovy.runtime.memoize.Memoize$MemoizeFunction.lambda$call$0(Memoize.java:137)
	at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:137)
	at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:113)
	at org.codehaus.groovy.runtime.memoize.Memoize$MemoizeFunction.call(Memoize.java:136)
	at groovy.lang.Closure.call(Closure.java:412)
	at nextflow.scm.AssetManager.getManifest(AssetManager.groovy)
	at nextflow.scm.AssetManager.getMainScriptName(AssetManager.groovy:415)
	at nextflow.scm.AssetManager.getMainScriptFile(AssetManager.groovy:406)
	at nextflow.scm.AssetManager.getMainScriptFile(AssetManager.groovy)
	at nextflow.cli.CmdRun.getScriptFile0(CmdRun.groovy:620)
	at nextflow.cli.CmdRun.getScriptFile(CmdRun.groovy:573)
	at nextflow.cli.CmdRun.run(CmdRun.groovy:327)
	at nextflow.cli.Launcher.run(Launcher.groovy:515)
	at nextflow.cli.Launcher.main(Launcher.groovy:675)

Environment

  • Nextflow version: 25.10
  • Java version: openjdk 23.0.2 2025-01-21
  • Operating system: macOS and Linux
  • Bash version: (use the command $SHELL --version)

Additional context

(Add any other context about the problem here)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions