Make plugin metadata prefetch failure non-fatal#7019
Conversation
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
✅ Deploy Preview for nextflow-docs-staging canceled.
|
|
Tested without connectivity to registry.
|
| log.warn "Failed to prefetch plugin metadata - ${e.message}" | ||
| log.debug "Plugin metadata prefetch error details", e |
|
Thanks for addressing this problem, it was indeed causing an issue for us at NGI (me) when setting up a recent Nextflow version on our HPC. Already in its current form, this will likely work perfectly for us. However, since there is already an environment variable That would introduce a 4th case: When no pinned version, but I see why allowing this may cause hard to debug issues (incompatible Nextflow/Plugin combinations?), but also reckon that few developers and almost no users will actually track the minimally required plugin version. If somebody is already keeping their |
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
Summary
Fixes #7013
HttpPluginRepository.prefetch()catch exceptions and log a warning instead of aborting startupHashMapon failure so thatgetPlugin()can still attempt on-demand lazy fetches laterfetchMetadata()error behavior directlyContext
When all plugins are pinned to exact versions and pre-installed locally, Nextflow unconditionally calls the plugin registry API at startup. If the registry is unreachable, the run aborts even though the fetched metadata would never be used.
This affects users in airlocked/firewalled environments who pre-install plugins into container images.
NXF_OFFLINE=trueworks around it but also blocks remote pipeline cloning, making it unusable for environments that need to fetch pipelines from a Git server.With this fix, the prefetch error is deferred — it only surfaces later if something genuinely needs the metadata (version resolution for unpinned plugins, download URLs for missing plugins).
Test plan
HttpPluginRepositoryTest— all 9 tests passnextflow.plugin.*tests passnextflow runsucceeds🤖 Generated with Claude Code