diff --git a/packages/core/src/v3/apiClient/index.ts b/packages/core/src/v3/apiClient/index.ts index deda5d01f9..e6f488bb9d 100644 --- a/packages/core/src/v3/apiClient/index.ts +++ b/packages/core/src/v3/apiClient/index.ts @@ -2375,7 +2375,7 @@ function shouldRetryStreamBatchItems( // Retry on rate limits with special handling for Retry-After if (response.status === 429) { - if (attempt >= retryOptions.maxAttempts!) { + if (retryOptions.maxAttempts !== undefined && attempt >= retryOptions.maxAttempts) { return { retry: false }; } diff --git a/packages/core/src/v3/utils/ioSerialization.ts b/packages/core/src/v3/utils/ioSerialization.ts index 5502afb098..417386f7f8 100644 --- a/packages/core/src/v3/utils/ioSerialization.ts +++ b/packages/core/src/v3/utils/ioSerialization.ts @@ -31,7 +31,11 @@ export async function parsePacket(value: IOPacket, options?: ParsePacketOptions) switch (value.dataType) { case "application/json": - return JSON.parse(value.data, makeSafeReviver(options)); + try { + return JSON.parse(value.data, makeSafeReviver(options)); + } catch { + return undefined; + } case "application/super+json": return superjson.parse(value.data); case "text/plain": @@ -55,7 +59,11 @@ export async function parsePacketAsJson( switch (value.dataType) { case "application/json": - return JSON.parse(value.data, makeSafeReviver(options)); + try { + return JSON.parse(value.data, makeSafeReviver(options)); + } catch { + return undefined; + } case "application/super+json": const superJsonResult = superjson.parse(value.data);