{"record":{"id":"bf4ea2a328f9da4f","repo":"nikivdev/code","slug":"f-pr-preview-path-accepts-at-most-one-repo-pat","errorCode":null,"errorMessage":"`f pr preview --path` accepts at most one repo path override","messagePattern":"`f pr preview --path` accepts at most one repo path override","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/pr_preview.rs","lineNumber":270,"sourceCode":"#[derive(Debug, Clone)]\nstruct PreviewContext {\n    repo_root: PathBuf,\n    review_root: PathBuf,\n    head_ref: String,\n    head_label: String,\n    compare_head_label: String,\n    work_tree_root: Option<PathBuf>,\n}\n\npub fn parse_pr_preview_args(args: &[String], opts: &PrOpts) -> Result<Option<PrPreviewCommand>> {\n    if args.first().map(|value| value.as_str()) != Some(\"preview\") {\n        return Ok(None);\n    }\n\n    let mut repo_path = match opts.paths.len() {\n        0 => None,\n        1 => Some(PathBuf::from(&opts.paths[0])),\n        _ => bail!(\"`f pr preview --path` accepts at most one repo path override\"),\n    };\n    let mut requested_base = opts.base.clone();\n    let mut mode = opts.mode.unwrap_or(PrPreviewModeArg::Draft);\n    let mut json = opts.json;\n\n    let mut index = 1;\n    while index < args.len() {\n        match args[index].as_str() {\n            \"--json\" => {\n                json = true;\n                index += 1;\n            }\n            \"--mode\" => {\n                let Some(value) = args.get(index + 1) else {\n                    bail!(\"`f pr preview --mode` requires a value\");\n                };\n                mode = parse_mode_arg(value)?;\n                index += 2;","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/pr_preview.rs#L252-L288","documentation":"The `f pr preview` command accepts at most one `--path` argument to override the repo path. This error is thrown when opts.paths contains more than one entry, since the preview flow can only operate against a single repository.","triggerScenarios":"Invoking `f pr preview --path /repo/a --path /repo/b` (or otherwise accumulating multiple path overrides) so opts.paths.len() > 1.","commonSituations":"Scripting the command with repeated --path flags; passing extra positional path arguments assuming multiple repos are supported; copy-pasted command lines from multi-repo workflows.","solutions":["Pass only a single --path value","Remove duplicate or extra --path arguments from the command line or script","If multiple repos were intended, run `f pr preview` once per repository"],"exampleFix":"// before\nf pr preview --path ~/repos/api --path ~/repos/web\n// after\nf pr preview --path ~/repos/api","handlingStrategy":"validation","validationCode":"if paths.len() > 1 {\n    anyhow::bail!(\"pass at most one --path to f pr preview\");\n}","typeGuard":null,"tryCatchPattern":"if let Err(e) = run_pr_preview(cmd) {\n    if e.to_string().contains(\"at most one repo path override\") {\n        eprintln!(\"Use a single --path; run once per repo instead\");\n    }\n}","preventionTips":["Never repeat --path on the command line","In scripts, deduplicate path arguments before invoking","Run the command once per repository for multi-repo flows"],"tags":["cli","argument-parsing","pr"],"backgroundTag":"invalid-cli-argument","analyzedSha":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}