GitHub
09/06/2026, 7:54 PMmeltano.yml, Meltano previously surfaced a generic error directing users to run meltano lock --update --all.
If a lockfile already exists on disk for that plugin under a specific variant (e.g., tap-fleetio--fleetio.lock), this PR detects it and surfaces an actionable error message that:
• Explains which variant lockfile(s) exist on disk.
• Instructs the user to add variant: <variant_name> to their plugin definition in meltano.yml.
Changes
• Added find_locked_variants to PluginLockService and LockedDefinitionService to scan for <plugin_name>--<variant>.lock files in the plugin root directory.
• Updated PluginDefinitionNotFoundError to accept discovered variants and generate a contextual reason and remediation instruction.
• Added regression test test_plugin_definition_not_found_suggests_variant in tests/meltano/core/test_project_plugins_service.py.
Verification
• Ran test module: uv run pytest tests/meltano/core/test_project_plugins_service.py (10 passed).
• Linted and formatted: uv run --with ruff ruff check and ruff format passed with 0 errors.
Checklist
• I have read the contribution guide
Was generative AI tooling used to co-author this PR?
• Yes (Gemini-3.8-flash)
Generated-by: Gemini following the agentic coding guidelines
Related Issues
• Closes #8427
Summary by Sourcery
Help users resolve missing plugin definitions by identifying matching locked variants and explaining how to configure them.
New Features:
• Suggest existing locked plugin variants and the required variant configuration when a plugin definition cannot be resolved.
Enhancements:
• Improve plugin definition errors with contextual explanations and actionable remediation based on discovered lockfiles.
• Add resilient locked-variant discovery across plugin lock directories, including handling missing directories and filesystem errors.
Tests:
• Add regression coverage for single- and multiple-variant suggestions and locked-variant discovery edge cases.
meltano/meltano