Pumpkin-MC/Pumpkin · error · ChunkParsingError
Failed reading chunk status
Error message
Failed reading chunk status {0} What it means
Variant `FailedReadStatus` of `ChunkParsingError` in pumpkin-world. It wraps a `pumpkin_nbt::Error` raised while reading the chunk's `Status` NBT field from serialized chunk data. The library throws it when the chunk status tag cannot be read during chunk deserialization (e.g. loading a chunk from anvil/region storage).
Solutions
- Inspect the wrapped pumpkin_nbt::Error for the failing tag; check the chunk's NBT structure
- Verify the world was not produced by an incompatible Minecraft/server version
- Delete the affected chunk to let the server regenerate it
Defensive patterns
Strategy: try-catch
Type guard
matches!(err, ChunkParsingError::FailedReadStatus(_))
Try / catch
match chunk::parse(bytes) {
Err(ChunkParsingError::FailedReadStatus(nbt_err)) => warn!("bad chunk status NBT: {nbt_err}; regenerating"),
other => other?,
} Prevention
- Do not mix region files across incompatible server/game versions
- Stop the server cleanly before copying world directories
- Validate world files after crashes before resuming
When it happens
Trigger: Deserializing a chunk whose NBT payload lacks a readable Status field, or whose Status tag has an unexpected type, causing pumpkin_nbt to fail.
Common situations: Region files written by other Minecraft versions or servers, corrupted world saves, manually edited chunk data.
Understand the failure class
Background: "failed to unmarshal" / json.Unmarshal errors: why parsing a response into a Go struct fails and how to fix it — this error's family across 23 libraries.
Related errors
- Failed to parse chunk from bytes
- Error deserializing chunk
- Invalid field type for
- Serde error
- Length too large
AI-assisted analysis of Pumpkin-MC/Pumpkin@8d4639e25a (2026-09-09).
Data as JSON: /api/errors/e63db69a8d999367.
Report an issue: GitHub.
Appendix: source
Thrown at crates/pumpkin-world/src/chunk/mod.rs:923
}
#[must_use]
pub fn get_highest_non_empty_subchunk(&self) -> usize {
self.section
.block_sections
.read()
.unwrap_or_else(std::sync::PoisonError::into_inner)
.iter()
.enumerate()
.rev()
.find(|(_, sub)| !sub.has_only_air())
.map_or(0, |(idx, _)| idx)
}
}
#[derive(Error, Debug)]
pub enum ChunkParsingError {
#[error("Failed reading chunk status {0}")]
FailedReadStatus(pumpkin_nbt::Error),
#[error("The chunk isn't generated yet")]
ChunkNotGenerated,
#[error("Error deserializing chunk: {0}")]
ErrorDeserializingChunk(String),
}
#[derive(Error, Debug)]
pub enum ChunkSerializingError {
#[error("Error serializing chunk: {0}")]
ErrorSerializingChunk(pumpkin_nbt::Error),
}
#[cfg(test)]
mod tests {
use super::ChunkSections;
use crate::chunk::palette::BlockPalette;
use pumpkin_data::{Block, block_properties::has_random_ticks};View on GitHub (pinned to 8d4639e25a)