Nextflow installation with micromamba seems broken

Hi there!

I get strange errors when calling nextflow run helloworld.nf on two different hosts where I installed it via micromamba.

On the Debian 12 it says:

library initialization failed - unable to allocate file descriptor table - out of memoryUnable to initialize nextflow environment

(Same error when trying nextflow info).

On the CentOS 7.9 it says:

N E X T F L O W  ~  version 0.24.2
Launching `src/helloworld.nf` [high_mirzakhani] - revision: b1230ea5c8
ERROR ~ Unknown process directive: `path`

Did you mean of these?
        each

 -- Check script 'helloworld.nf' at line: 5 or see '.nextflow.log' file for more details

But nextflow info works.

To me it looks like the Java/Groovy dependencies that should have been installed by micromamba are not used.

Steps to reproduce:

  1. Install micromamba:

    curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba
    ./bin/micromamba shell init -s bash -r ~/micromamba
    source ~/.bashrc # or restart terminal
    

    I configure it like this:

    micromamba config append channels bioconda
    micromamba config append channels conda-forge
    micromamba config set channel_priority_strict
    
  2. micromamba create -n testnextflow nextflow which apparently installs openjdk.

    It also creates a “classpath” file for nextflow at $HOME/.nextflow/tmp/launcher/nextflow-one_24.04.4/$HOSTNAME/classpath-8269d21....

  3. micromamba activate testnextflow

  4. Save the tutorial workflow from here: Your first script — Nextflow v24.08.0-edge documentation to helloworld.nf

  5. nextflow run helloworld.nf

I don’t know if it’s a nextflow problem or a micromamba problem.

I have succeeded in installing nextflow using the recommended default method and also using conda with --solver libmamba.

I suppose the environment set up by the micromamba executable is incorrect.

Any ideas?

Thanks in advance!

Hi @Gullumluvl !

The Debian 12 installation is definitely a broken Nextflow install. Maybe check to make sure that you have a compatible java install?

The CentOS 7.9 nextflow looks like it’s installed correctly but you might have a bug in your helloworld.nf. The unknown process directive path is usually a syntax problem. Could be a missing comma or an unmatched { somewhere.

Hi! Thanks for your reply.

Just answering about the syntax problem on CentOS: it also happens when I do nextflow run hello which fetches the workflow remotely; the error is slightly different (stdout is undefined), but it also looks like nextflow or groovy’s required classes are not loaded.

Update:

Not sure what I did because it appears to be working correctly now. Maybe I did not source the .bashrc after installing micromamba, or maybe I should have quit the terminal instead[1].

Now the launcher file, such as $HOME/.nextflow/tmp/launcher/nextflow-one_24.04.4/$HOSTNAME/classpath-8269d21...
correctly starts with an environment specific java path, instead of using /usr/bin/java.


  1. Still I’m convinced I had setup micromamba, because otherwise the command micromamba activate testnextflow would have failed, and also no nextflow executable would have been found. This would need experiments on a fresh install. ↩︎

Glad you figured it out and thanks for sharing your insights back here. Happy scienc-ing!

1 Like