spring-projects/spring-ai · error · IllegalArgumentException
Unsupported…
Error message
Unsupported spring.ai.openai.audio.transcription.chunking-strategy value: '<chunkingStrategy>'. Only 'auto' is supported through configuration properties; use OpenAiAudioTranscriptionOptions.Builder#chunkingStrategy(...) programmatically for voice-activity-detection tuning.
What it means
Error "Unsupported spring.ai.openai.audio.transcription.chunking-strategy value: '<chunkingStrategy>'. Only 'auto' is supported through configuration properties; use OpenAiAudioTranscriptionOptions.Builder#chunkingStrategy(...) programmatically for voice-activity-detection tuning." thrown in spring-projects/spring-ai.
Solutions
- Remove or set chunking-strategy to 'auto' in application properties
- Use OpenAiAudioTranscriptionOptions.Builder#chunkingStrategy(...) programmatically for voice-activity-detection tuning
- Build the options object directly instead of via the properties converter
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at auto-configurations/models/spring-ai-autoconfigure-model-openai/src/main/java/org/springframework/ai/model/openai/autoconfigure/OpenAiAudioTranscriptionProperties.java:172 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of spring-projects/spring-ai@98a7beda4f (2026-09-11).
Data as JSON: /api/errors/a6ccec23df7e9099.
Report an issue: GitHub.
Appendix: source
Thrown at auto-configurations/models/spring-ai-autoconfigure-model-openai/src/main/java/org/springframework/ai/model/openai/autoconfigure/OpenAiAudioTranscriptionProperties.java:172
this.knownSpeakerReferences = knownSpeakerReferences;
}
public OpenAiAudioTranscriptionOptions toOptions() {
OpenAiAudioTranscriptionOptions.Builder builder = OpenAiAudioTranscriptionOptions.builder()
.model(this.model)
.responseFormat(this.responseFormat)
.prompt(this.prompt)
.language(this.language)
.temperature(this.temperature)
.timestampGranularities(this.timestampGranularities)
.knownSpeakerNames(this.knownSpeakerNames)
.knownSpeakerReferences(this.knownSpeakerReferences);
if (this.diarizedJsonWorkaroundEnabled != null) {
builder.diarizedJsonWorkaroundEnabled(this.diarizedJsonWorkaroundEnabled);
}
if (this.chunkingStrategy != null) {
if (!"auto".equalsIgnoreCase(this.chunkingStrategy)) {
throw new IllegalArgumentException(
"Unsupported spring.ai.openai.audio.transcription.chunking-strategy value: '"
+ this.chunkingStrategy
+ "'. Only 'auto' is supported through configuration properties; use "
+ "OpenAiAudioTranscriptionOptions.Builder#chunkingStrategy(...) programmatically "
+ "for voice-activity-detection tuning.");
}
builder.chunkingStrategy(TranscriptionCreateParams.ChunkingStrategy.ofAuto());
}
return builder.build();
}
private Options options = new Options();
@DeprecatedConfigurationProperty(replacement = "spring.ai.openai.audio.transcription")
@Deprecated(since = "2.0.0", forRemoval = true)
public Options getOptions() {
return this.options;
}View on GitHub (pinned to 98a7beda4f)