The Wire · Showcase
SPRING-AI FIXES CRITICAL TOOL CALLING BUG THAT BROKE OPENAI STRICT MODE
By RepoJournal · Filed · About Spring
The `strict` parameter in OpenAI tool calling was silently failing across all Spring AI implementations because it was serialized in the wrong place in the payload.
Spring AI shipped a critical fix [1] that moves the strict mode configuration from deep inside the JSON-Schema parameters object to the function-level wrapper, aligning with OpenAI's actual API spec. This wasn't a theoretical issue: the property was being completely ignored in production, meaning any app relying on strict mode validation was shipping unvalidated tool calls. The fix also exposes a strict flag directly in OpenAiChatOptions for cleaner configuration. In parallel, Spring AI is adding partition scoping to MilvusVectorStore [2], giving you fine-grained control over which partitions get written to and queried. Across the ecosystem, Spring Security is keeping pace with dependency updates: oauth2-oidc-sdk bumped to 11.38.1 [3], BouncyCastle to 1.85 [4], and Jackson to 3.2.1 [5]. Spring LDAP also updated JUnit to 6.1.2 [6]. These are routine maintenance moves, but the Spring AI fix above warrants immediate attention if you're using tool calling.
Action items
- → Pull the strict mode fix for OpenAiChatModel immediately if you use tool calling with OpenAI or Azure spring-projects/spring-ai [immediate]
- → Review MilvusVectorStore implementation if you partition your vector collections spring-projects/spring-ai [plan]
- → Upgrade Spring Security dependencies during next maintenance window spring-projects/spring-security [monitor]
References
- [1] Fix strict mode payload placement in `OpenAiChatModel` ↗ spring-projects/spring-ai
- [2] Add partition scoping to `MilvusVectorStore` spring-projects/spring-ai
- [3] Bump com.nimbusds:oauth2-oidc-sdk from 11.37.2 to 11.38.1 ↗ spring-projects/spring-security
- [4] Bump org-bouncycastle from 1.84 to 1.85 ↗ spring-projects/spring-security
- [5] Bump tools.jackson:jackson-bom from 3.2.0 to 3.2.1 ↗ spring-projects/spring-security
- [6] Bump org.junit:junit-bom from 6.1.1 to 6.1.2 ↗ spring-projects/spring-ldap