nikivdev/code · error
remote review requires an active subscription. Visit myflow
Error message
remote review requires an active subscription. Visit myflow to subscribe.
What it means
The remote review service responded 402 Payment Required, which the library maps to this message. An account exists and authenticates, but the subscription tier does not permit remote reviews.
Source
Thrown at src/commit.rs:5488
commit_with_check_timeout_secs(),
))
.context("failed to create HTTP client for remote review")?;
let mut request = client.post(&review_url).json(&payload);
if let Some(token) = commit_with_check_review_token() {
request = request.bearer_auth(token);
}
let response = request
.send()
.context("failed to send remote review request")?;
if !response.status().is_success() {
if response.status() == StatusCode::UNAUTHORIZED {
bail!("remote review unauthorized. Run `f auth` to login.");
}
if response.status() == StatusCode::PAYMENT_REQUIRED {
bail!("remote review requires an active subscription. Visit myflow to subscribe.");
}
bail!("remote review failed: HTTP {}", response.status());
}
let payload: RemoteReviewResponse = response
.json()
.context("failed to parse remote review response")?;
if !payload.stderr.trim().is_empty() {
debug!(stderr = payload.stderr.as_str(), "remote claude stderr");
}
let result = payload.output;
let mut review_json = parse_review_json(&result);
let future_tasks = review_json
.as_ref()
.map(|parsed| normalize_future_tasks(&parsed.future_tasks))
.unwrap_or_default();View on GitHub (pinned to a747e741ae)
Solutions
- Visit myflow and subscribe or renew the subscription.
- Verify billing details/payment method on the myflow account page.
- Check current plan and quota usage; upgrade if limits are hit.
- If already subscribed, re-login (`f auth`) to refresh entitlements and contact support if it persists.
Defensive patterns
Strategy: try-catch
Validate before calling
// preflight entitlement check if the service exposes one
let plan_ok = client.get(format!("{base}/subscription"))
.bearer_auth(token).send().await?
.json::<SubscriptionInfo>().await?
.active;
if !plan_ok { anyhow::bail!("subscription inactive; visit myflow to subscribe"); } Try / catch
match run_remote_review(&diff).await {
Err(e) if e.to_string().contains("active subscription") => {
eprintln!("Remote review needs a subscription. Open myflow billing page.");
open::that("https://myflow/billing").ok();
Err(e)
}
other => other,
} Prevention
- Check subscription status before automated/CI review runs
- Set up billing alerts to avoid silent lapses
- Renew trials before expiry in team accounts
- Map 402 to a dedicated error type so tooling can surface it clearly
When it happens
Trigger: Receiving StatusCode::PAYMENT_REQUIRED from the review endpoint while dispatching a remote review.
Common situations: Free/trial plan expired; subscription lapsed (payment failed); usage quota exhausted; account downgraded after previously working.
Related errors
- remote commit message requires an active subscription. Visit
- remote review URL not configured
- remote review unauthorized. Run `f auth` to login.
- remote review failed: HTTP {}
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/d177fb784fac188c.
Report an issue: GitHub.