quickwit-oss/quickwit · error · anyhow::Error
max_num_concurrent_split_searches
Error message
max_num_concurrent_split_searches ({}) must be lower or equal to split_cache.max_file_descriptors ({}) What it means
SearcherConfig validation found that `searcher.max_num_concurrent_split_searches` exceeds `searcher.split_cache.max_file_descriptors`. Each concurrent split search needs a file descriptor from the split cache's budget, so a higher concurrency than the fd limit can never be satisfied.
Solutions
- Lower `max_num_concurrent_split_searches` to at most `split_cache.max_file_descriptors`
- Raise `split_cache.max_file_descriptors` if the OS fd limit allows
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at quickwit/quickwit-config/src/node_config/mod.rs:699 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of quickwit-oss/quickwit@a39730c5cd (2026-09-08).
Data as JSON: /api/errors/93ab2ff8e4df8517.
Report an issue: GitHub.
Appendix: source
Thrown at quickwit/quickwit-config/src/node_config/mod.rs:699
impl SearcherConfig {
/// The timeout applied at the gRPC layer for search requests
pub fn request_timeout(&self) -> Duration {
Duration::from_secs(self.request_timeout_secs.get())
}
/// The timeout applied at the leaf search layer
pub fn leaf_request_timeout(&self) -> Duration {
Duration::from_secs(self.leaf_request_timeout_secs.get())
}
fn default_request_timeout_secs() -> NonZeroU64 {
NonZeroU64::new(30).unwrap()
}
fn validate(&self) -> anyhow::Result<()> {
if let Some(split_cache_limits) = self.split_cache {
if self.max_num_concurrent_split_searches
> split_cache_limits.max_file_descriptors.get() as usize
{
anyhow::bail!(
"max_num_concurrent_split_searches ({}) must be lower or equal to \
split_cache.max_file_descriptors ({})",
self.max_num_concurrent_split_searches,
split_cache_limits.max_file_descriptors
);
}
if self.warmup_single_split_initial_allocation > self.warmup_memory_budget {
anyhow::bail!(
"warmup_single_split_initial_allocation ({}) must be lower or equal to \
warmup_memory_budget ({})",
self.warmup_single_split_initial_allocation,
self.warmup_memory_budget
);
}
}
Ok(())
}
}View on GitHub (pinned to a39730c5cd)