{"record":{"id":"0d7b47f5f4ce0385","repo":"nikivdev/code","slug":"remote-review-url-not-configured","errorCode":null,"errorMessage":"remote review URL not configured","messagePattern":"remote review URL not configured","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/commit.rs","lineNumber":5458,"sourceCode":"\nfn normalize_review_url(url: &str) -> String {\n    let trimmed = url.trim().trim_end_matches('/');\n    if trimmed.ends_with(\"/review\") {\n        trimmed.to_string()\n    } else {\n        format!(\"{}/review\", trimmed)\n    }\n}\n\nfn run_remote_claude_review(\n    diff: &str,\n    session_context: Option<&str>,\n    review_instructions: Option<&str>,\n    model: ClaudeModel,\n) -> Result<ReviewResult> {\n    let url = match commit_with_check_review_url() {\n        Some(url) => url,\n        None => bail!(\"remote review URL not configured\"),\n    };\n\n    let review_url = normalize_review_url(&url);\n    let payload = RemoteReviewRequest {\n        diff: diff.to_string(),\n        context: session_context.map(|value| value.to_string()),\n        model: model.as_claude_arg().to_string(),\n        review_instructions: review_instructions.map(|v| v.to_string()),\n    };\n\n    let client = crate::http_client::blocking_with_timeout(Duration::from_secs(\n        commit_with_check_timeout_secs(),\n    ))\n    .context(\"failed to create HTTP client for remote review\")?;\n\n    let mut request = client.post(&review_url).json(&payload);\n    if let Some(token) = commit_with_check_review_token() {\n        request = request.bearer_auth(token);","sourceCodeStart":5440,"sourceCodeEnd":5476,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/commit.rs#L5440-L5476","documentation":"The remote review feature requires a review service URL, obtained from commit_with_check_review_url(). When that configuration is absent the review cannot be dispatched and the library bails immediately, before building the request.","triggerScenarios":"Calling the remote review function (e.g. via `f commit` with check/review) when commit_with_check_review_url() returns None — the review URL config key is unset.","commonSituations":"Fresh install without myflow configuration; config file missing the review URL key; running with a stripped config in CI; typo in config key name; older config format after upgrade.","solutions":["Configure the remote review URL in your myflow config (the key commit_with_check_review_url reads, e.g. review_url).","Run `f auth` / myflow setup to populate defaults.","Verify the config file exists and the key spelling matches the current version's schema.","Check you're in the right environment (config may be per-user/per-project)."],"exampleFix":"// config before (missing key)\n[review]\n// after\n[review]\nurl = \"https://myflow.example.com/review\"","handlingStrategy":"validation","validationCode":"if commit_with_check_review_url().is_none() {\n    anyhow::bail!(\"remote review URL not configured; set [review] url in myflow config\");\n}","typeGuard":"fn review_url_configured() -> bool {\n    commit_with_check_review_url().is_some()\n}","tryCatchPattern":null,"preventionTips":["Populate the review URL key during project setup/onboarding","Validate config schema after upgrading myflow versions","Document required config keys for CI environments","Fail fast with a config preflight check before long commit flows"],"tags":["configuration","remote-review","http"],"backgroundTag":"missing-config-value","analyzedSha":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}