CLI crashes for task parameters starting with run/executor/plugins (e.g. runtime=…): "Run overwrites must start with 'run.'"
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 78/100
Research direction
Start with _parse_prefixed_args and its caller, RunContext.cli_execute. Reproduce the unit-level cases for runtime=3600, repeated run. prefixes, and executor=k=v, then trace the existing argument parsing behavior. Done means ordinary task parameters are accepted, only valid leading prefixes are handled, repeated prefixes are not silently removed, and values containing '=' are preserved.
Written by the indexing model from the issue text.
Description
Description
Any @run.cli.entrypoint function with a parameter whose name starts with a reserved prefix (run, executor, plugins) cannot be configured from the CLI — the invocation crashes before the task argument parser runs:
ValueError: Run overwrites must start with 'run.'. Got runtime=120
Affected names include runtime, run_id, runs_per_epoch, executors, plugins_dir etc — all normal parameter names.
Steps to reproduce
# app.py
import nemo_run as run
@run.cli.entrypoint(skip_confirmation=True)
def train(runtime: int = 60, lr: float = 0.1):
print(runtime, lr)
if __name__ == "__main__":
run.cli.main(train)
$ python app.py runtime=120 lr=0.2
ValueError: Run overwrites must start with 'run.'. Got runtime=120
Unit-level: _parse_prefixed_args(["runtime=3600"], "run") raises.
Expected behavior
runtime is a task parameter, the run should behave like any other name (max_runtime=120 works today). Only run=…, run.…, run[…] (and executor/plugins equivalents) should be treated as prefixed overwrites.
Actual behavior
RunContext.cli_execute passes all task args through _parse_prefixed_args(args, "run"), which matches startswith("run") with no word boundary.
Two more issues in the same function:
_parse_prefixed_args(["run.a.run.b=1"], "run")returnsa.b=1— everyrun.occurrence is stripped, silently targeting the wrong parameter._parse_prefixed_args(["executor=k=v"], "executor")returns valuekinstead ofk=v(value split at first=).
Environment
nemo-run main (b85eb67), Python 3.12, macOS
- Dominant language
- Python
- Stars
- 259
- Forks
- 115
- Avg merge
- 6d 13h
- Merged PRs (30d)
- 23
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA-NeMo/Run
-
Dependency DashboardOpen
Difficulty 4/5 3-5 days Newbie friendliness 20/100
NVIDIA-NeMo/Run#594 · 1 comment ·
Maintainers usually reply within 2 days
-
Clarify or support automatic teardown for Kubernetes `SkypilotExecutor` / `SkypilotJobsExecutor`Opencommunity-request enhancement waiting-on-maintainers
Difficulty 4/5 3-5 days Newbie friendliness 48/100
NVIDIA-NeMo/Run#483 · 1 comment ·
Maintainers usually reply within 2 days
-
bug community-request waiting-on-customer
Difficulty 4/5 3-5 days Newbie friendliness 42/100
NVIDIA-NeMo/Run#482 · 1 comment ·
Maintainers usually reply within 2 days
-
bug community-request waiting-on-maintainers
Difficulty 4/5 3-5 days Newbie friendliness 30/100
NVIDIA-NeMo/Run#405 · 2 comments ·
Maintainers usually reply within 2 days
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
NVIDIA-NeMo/Run#362 · 1 comment · 1 reaction ·
Maintainers usually reply within 2 days
Similar issues
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
json_params_matcher fails on falsy top-level JSON primitives (0, False, "")Possibly taken @mayureshsonawane17 claimed this today. OpenWaiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 5 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Add .devin pluginOpen
Difficulty 1/5 Under an hour Newbie friendliness 88/100
ayghri/i-have-adhd#249 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
modelscope/FunASR#3762 ·
Maintainers usually reply within 1 day