xai-org/grok-build · error
byte budget exceeded: {}/{} bytes in {}
Error message
byte budget exceeded: {}/{} bytes in {} What it means
Error "byte budget exceeded: {}/{} bytes in {}" thrown in xai-org/grok-build.
Source
Thrown at crates/codegen/xai-grok-tools/src/implementations/grok_build/storage.rs:92
// compare_exchange ensures only the winner initialises; losers no-op.
if self.counter.load(Ordering::Relaxed) == 0
&& let Ok((max_n, total_bytes)) = scan_dir_stats(&dir).await
&& self
.counter
.compare_exchange(0, max_n, Ordering::Relaxed, Ordering::Relaxed)
.is_ok()
{
self.bytes_written.fetch_add(total_bytes, Ordering::Relaxed);
}
let n = self.counter.fetch_add(1, Ordering::Relaxed) + 1;
let size = bytes.len() as u64;
let new_total = self.bytes_written.fetch_add(size, Ordering::Relaxed) + size;
if new_total > self.max_total_bytes {
self.bytes_written.fetch_sub(size, Ordering::Relaxed);
self.counter.fetch_sub(1, Ordering::Relaxed);
anyhow::bail!(
"byte budget exceeded: {}/{} bytes in {}",
new_total,
self.max_total_bytes,
self.dir_name
);
}
let ext = ext_override.unwrap_or(self.ext);
let path = dir.join(format!("{n}.{ext}"));
// Atomic write: tempfile -> sync_all -> persist, all in one
// spawn_blocking call to avoid blocking the async executor.
let dest = path.clone();
let target_dir = dir;
let data = bytes.to_vec();
let result: anyhow::Result<()> = tokio::task::spawn_blocking(move || {
let tmp = tempfile::NamedTempFile::new_in(&target_dir).context("create temp file")?;
std::fs::write(tmp.path(), &data).context("write temp file")?;View on GitHub (pinned to bc7f02eddd)
When it happens
Trigger: Thrown at crates/codegen/xai-grok-tools/src/implementations/grok_build/storage.rs:92 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/924febceadba6c27.
Report an issue: GitHub.