fix(provider-usage): bound Anthropic usage error response reads to prevent OOM (#97614)

Replace unbounded res.json() with readProviderJsonResponse in the
fetchClaudeUsage error path to cap error body reads at 16 MiB.
This commit is contained in:
cxbAsDev
2026-06-29 11:26:11 +08:00
committed by GitHub
parent f6115dd5fe
commit 615558f6fb
+3 -2
View File
@@ -7,6 +7,7 @@ import {
} from "./provider-usage.fetch.shared.js";
import { clampPercent, PROVIDER_LABELS } from "./provider-usage.shared.js";
import type { ProviderUsageSnapshot, UsageWindow } from "./provider-usage.types.js";
import { readProviderJsonResponse } from "../agents/provider-http-errors.js";
type ClaudeUsageResponse = {
five_hour?: { utilization?: number; resets_at?: string };
@@ -151,9 +152,9 @@ export async function fetchClaudeUsage(
if (!res.ok) {
let message: string | undefined;
try {
const data = (await res.json()) as {
const data = await readProviderJsonResponse<{
error?: { message?: unknown } | null;
};
}>(res, "Anthropic usage error");
const raw = data?.error?.message;
if (typeof raw === "string" && raw.trim()) {
message = raw.trim();