{"record":{"id":"ef4367a2ffb34179","repo":"aaif-goose/goose","slug":"please-provide-the-following-parameters-in-the-com","errorCode":null,"errorMessage":"Please provide the following parameters in the command line: {}","messagePattern":"Please provide the following parameters in the command line: (.+?)","errorType":"validation","errorClass":"RecipeError::MissingParams","httpStatus":null,"severity":"error","filePath":"crates/goose-cli/src/recipes/recipe.rs","lineNumber":43,"sourceCode":"    let recipe_content = recipe_file.content;\n    let recipe_dir = recipe_file.parent_dir;\n    match build_recipe_from_template(\n        recipe_content,\n        &recipe_dir,\n        params,\n        Some(create_user_prompt_callback()),\n    ) {\n        Ok(recipe) => {\n            let secret_requirements = discover_recipe_secrets(&recipe);\n            if let Err(e) = collect_missing_secrets(&secret_requirements) {\n                eprintln!(\n                    \"Warning: Failed to collect some secrets: {}. Recipe will continue to run.\",\n                    e\n                );\n            }\n            Ok(recipe)\n        }\n        Err(RecipeError::MissingParams { parameters }) => Err(anyhow::anyhow!(\n            \"Please provide the following parameters in the command line: {}\",\n            missing_parameters_command_line(parameters)\n        )),\n        Err(e) => Err(anyhow::anyhow!(e.to_string())),\n    }\n}\n\n/// Collects missing secrets from the user interactively\n///\n/// This function checks if each required secret exists in the keyring.\n/// For missing secrets, it prompts the user interactively and stores them\n/// using the scoped key to prevent collisions.\n///\n/// # Arguments\n/// * `requirements` - Vector of SecretRequirement objects to collect\n///\n/// # Returns\n/// Result indicating success or failure of the collection process","sourceCodeStart":25,"sourceCodeEnd":61,"githubUrl":"https://github.com/aaif-goose/goose/blob/3810898a7447ec3299be72e223d3570a7aabf0ab/crates/goose-cli/src/recipes/recipe.rs#L25-L61","documentation":"Recipe construction returned RecipeError::MissingParams — the recipe frontmatter declares parameters that are required, and no values were supplied interactively or on the command line. Goose converts the missing-parameter list into an actionable message (via missing_parameters_command_line) telling you exactly which --params flags to add. This is a usage error, not a bug.","triggerScenarios":"Running `goose run --recipe x.yaml` where frontmatter has `parameters:` entries without defaults, in a non-TTY context where the interactive prompt callback could not collect them, or when a provided parameter name is typo'd so the required one still counts as missing.","commonSituations":"CI / scripted runs with no interactive prompt; parameter name casing or typo mismatches between the command line and frontmatter; recipes newly updated upstream to require extra parameters.","solutions":["Copy the suggested command from the error message — it lists every missing parameter as --params name=<value> flags.","Re-run in an interactive terminal to get prompted for values.","Inspect the recipe frontmatter (parameters: section) and match names exactly, including case.","Give the parameter a default value in the recipe if it should be optional."],"exampleFix":"# before\n$ goose run --recipe my-recipe.yaml\nError: Please provide the following parameters in the command line: --params api_key=<api_key>\n\n# after\n$ goose run --recipe my-recipe.yaml --params api_key=sk-...","handlingStrategy":"validation","validationCode":"# front-load required params before invoking goose\nrequired=$(yq '.parameters // {} | map_values(select(.required == true)) | keys | join(\",\")' recipe.yaml)\nfor p in ${required//,/ }; do\n    [ -n \"${PARAMS[$p]:-}\" ] || echo \"missing --params ${p}=<value>\"\ndone","typeGuard":null,"tryCatchPattern":"if let Err(e) = run_recipe(\"my-recipe.yaml\", &params) {\n    if e.to_string().starts_with(\"Please provide the following parameters\") {\n        // usage error: parse the suggested --params flags out of the message and re-prompt\n    }\n    return Err(e);\n}","preventionTips":["Pass every required parameter explicitly in non-interactive/CI runs.","Match parameter names exactly (case-sensitive) with the frontmatter.","Give optional parameters defaults in the recipe."],"tags":["recipes","cli","parameters","usage-error","validation"],"backgroundTag":null,"analyzedSha":"3810898a7447ec3299be72e223d3570a7aabf0ab","analyzedAt":"2026-08-16T10:14:26.282Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}