Spring AI Spring Boot Auto Configuration modules providing automatic setup for AI models, vector stores, MCP, and retry capabilities
Step-by-step guide for configuring retry behavior in Spring AI.
Retry module is automatically enabled when spring-ai-retry is on classpath (included in most starters).
# application.properties
spring.ai.retry.max-attempts=5
spring.ai.retry.backoff.initial-interval=1s
spring.ai.retry.backoff.multiplier=2
spring.ai.retry.backoff.max-interval=30sResult: Retry delays will be 1s, 2s, 4s, 8s, 16s (5 attempts, capped at 30s).
# Retry on rate limits
spring.ai.retry.on-http-codes=429
# Never retry auth errors
spring.ai.retry.exclude-on-http-codes=401,403spring.ai.retry.max-attempts=10
spring.ai.retry.on-http-codes=429,503
spring.ai.retry.backoff.initial-interval=5s
spring.ai.retry.backoff.multiplier=3
spring.ai.retry.backoff.max-interval=120sspring.ai.retry.max-attempts=3
spring.ai.retry.exclude-on-http-codes=401,403,400
spring.ai.retry.backoff.initial-interval=500msspring.ai.retry.max-attempts=20
spring.ai.retry.on-http-codes=429,500,502,503,504
spring.ai.retry.backoff.initial-interval=1s
spring.ai.retry.backoff.multiplier=1.5@Service
public class CustomRetryService {
private final RetryTemplate retryTemplate;
private final ChatModel chatModel;
public String chatWithCustomRetry(String message) {
return retryTemplate.execute(
context -> chatModel.call(message),
context -> "Fallback response after all retries"
);
}
}@Component
public class RetryMetrics {
private final MeterRegistry meterRegistry;
@EventListener
public void onRetry(RetryEvent event) {
meterRegistry.counter("ai.retry.attempts",
"exception", event.getException().getClass().getSimpleName()
).increment();
}
}