Skip to content

fix(agents-core): handle invalid JSON in tool call arguments gracefully#887

Merged
seratch merged 8 commits intoopenai:mainfrom
OlegHQ:fix/issue-723-invalid-json-handling
Jan 20, 2026
Merged

fix(agents-core): handle invalid JSON in tool call arguments gracefully#887
seratch merged 8 commits intoopenai:mainfrom
OlegHQ:fix/issue-723-invalid-json-handling

Conversation

@OlegHQ
Copy link
Contributor

@OlegHQ OlegHQ commented Jan 19, 2026

This pull request fixes agent crashes when the LLM returns malformed JSON in tool_calls arguments (e.g., {"{"tagIds":...).

The fix catches JSON parse errors in toolExecution.ts and returns a clear error message to the model instead of crashing. This lets the agent recover and retry with valid JSON.

Verification

Environment: macOS (arm64)
Runtime: Node.js v24.11.1

pnpm install
pnpm test

All tests pass (95 test files, 964 tests).

Fixes #723

When the LLM generates malformed JSON for tool_calls arguments, the agent
would crash with an unhandled SyntaxError. This change catches JSON
parsing errors in executeFunctionToolCalls and returns a user-friendly
error message instead, allowing the agent to continue running and
potentially retry.

The fix introduces:
- Safe argument parsing that catches JSON/Zod parse errors
- Error result builder that returns a helpful message to the model
- Test case reproducing the exact issue scenario
- Remove redundant JSDoc comments (self-documenting types/functions)
- Remove unnecessary `as const` assertion
- Remove redundant inline test comments
@changeset-bot
Copy link

changeset-bot bot commented Jan 19, 2026

🦋 Changeset detected

Latest commit: f2940f5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@openai/agents-core Patch
@openai/agents-extensions Patch
@openai/agents-openai Patch
@openai/agents-realtime Patch
@openai/agents Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@seratch seratch added this to the 0.4.x milestone Jan 19, 2026
@seratch seratch added enhancement New feature or request and removed package:agents-core labels Jan 19, 2026
@seratch seratch removed this from the 0.4.x milestone Jan 19, 2026
@github-actions github-actions bot added this to the 0.4.x milestone Jan 20, 2026
@seratch seratch enabled auto-merge (squash) January 20, 2026 00:29
@seratch seratch merged commit 6cc01be into openai:main Jan 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SyntaxError stops agent when LLM generates invalid JSON for tool call

2 participants