Skip to content

Commit 14367e4

Browse files
committed
fix(provider-usage): bound Anthropic usage error response reads to prevent OOM
Replace unbounded res.json() with readProviderJsonResponse in the fetchClaudeUsage error path to cap error body reads at 16 MiB.
1 parent 87db23e commit 14367e4

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/infra/provider-usage.fetch.claude.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from "./provider-usage.fetch.shared.js";
88
import { clampPercent, PROVIDER_LABELS } from "./provider-usage.shared.js";
99
import type { ProviderUsageSnapshot, UsageWindow } from "./provider-usage.types.js";
10+
import { readProviderJsonResponse } from "../agents/provider-http-errors.js";
1011

1112
type ClaudeUsageResponse = {
1213
five_hour?: { utilization?: number; resets_at?: string };
@@ -151,9 +152,9 @@ export async function fetchClaudeUsage(
151152
if (!res.ok) {
152153
let message: string | undefined;
153154
try {
154-
const data = (await res.json()) as {
155+
const data = await readProviderJsonResponse<{
155156
error?: { message?: unknown } | null;
156-
};
157+
}>(res, "Anthropic usage error");
157158
const raw = data?.error?.message;
158159
if (typeof raw === "string" && raw.trim()) {
159160
message = raw.trim();

0 commit comments

Comments
 (0)