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

  1. Inspect the wrapped pumpkin_nbt::Error for the failing tag; check the chunk's NBT structure
  2. Verify the world was not produced by an incompatible Minecraft/server version
  3. 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

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


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)