IonWarp caught it Greptile and CodeRabbit missed it
IonWarpbotcommented on line 86
P1OAuth token refresh verifies statusText rather than response.ok · Log & Errors Review
When Salesforce returns HTTP 200 with an empty statusText (common in HTTP/2) or non-OK text, getClient throws HttpError(400) and aborts valid token refresh.
Suggested change
+ if (!response.ok) throw new HttpError({ statusCode: 400, message: response.statusText });
HighKnown issue in the Log & Errors Review benchmark · caught by Gemini 3.8 FlashSee the graded case
IonWarp caught it Greptile, Cursor Bugbot and CodeRabbit missed it
IonWarpbotcommented on line 199
P2Inconsistent metric tag name 'shards' instead of 'shard' · Log & Errors Review
The metric timer uses tag key 'shards' while sibling metrics 'spans.buffer.flusher.produce' and 'spans.buffer.segment_size_bytes' use 'shard', preventing unified aggregation across flusher produce metrics.
Suggested change
+ with metrics.timer("spans.buffer.flusher.wait_produce", tags={"shard": shard_tag}):
MediumKnown issue in the Log & Errors Review benchmark · caught by Gemini 3.8 FlashSee the graded case
IonWarp caught it Greptile, Cursor Bugbot and CodeRabbit missed it
IonWarpbotcommented on line 58
P1Plugin request completion log drops traceID field after refactor · Log & Errors Review
When a plugin request completes, the log emitted by LoggerMiddleware omits traceID because it was removed from logParams and is not set in instrumentContext, breaking distributed trace correlation for operators.
LowKnown issue in the Log & Errors Review benchmark · caught by Gemini 3.8 FlashSee the graded case
P1Migration crashes when embed_category is not configured · Log & Errors Review
When embed_category has no matching category (the default), execute(...)[0] is nil, raising NoMethodError on ['id'] and halting migrations during deployment.
HighKnown issue in the Log & Errors Review benchmark · caught by Gemini 3.8 FlashSee the graded case
Gemini 3.8 Flash is its best model on this benchmark; Log & Errors Review runs DeepSeek V4.1 Flash unless you pick another.
Log & Errors Review on the benchmark
IonWarp's models and the review apps, graded on the same open-source pull requests.
Blue: DeepSeek V4.1 Flash, the model IonWarp runs for Log & Errors Review. Yellow: Gemini 3.8 Flash, the model a failed review retries on. Sorted by Reviewer Score (F1 counts 3×, time and cost 1× each). Review times come from runs on Sep 13–25, 2026 (models) and Jan 23–Apr 7, 2026 (apps). Click a column heading to sort.
On this benchmark Gemini 3.8 Flash scored higher than DeepSeek V4.1 Flash (67.7% F1 against 59.0%). Why IonWarp runs DeepSeek V4.1 Flash: in a trial of our specialist reviewers on production pull requests on 23 September 2026 it filed about as many findings per review as GLM 5.3 Flash at high effort (0.93 against 1.02) for a third of the cost ($0.039 against $0.125), and 3 of its 64 findings were refuted.
Pricing
Simple pricing for your whole team.
One workspace price with seats included. Credits pool across your team. Unlimited repos on every plan.
Log & Errors Review is on Pro and Max, from $49 a month with 5 seats and a 7-day trial.
P1OAuth token refresh verifies statusText rather than response.ok · Log & Errors Review
When Salesforce returns HTTP 200 with an empty statusText (common in HTTP/2) or non-OK text, getClient throws HttpError(400) and aborts valid token refresh.