SeleniumHQ/selenium · error · anyhow::Error
Unable to extract PKG: empty Payload
Error message
Unable to extract PKG: empty Payload
What it means
Error "Unable to extract PKG: empty Payload" thrown in SeleniumHQ/selenium.
Source
Thrown at rust/src/files.rs:293
output.extend_from_slice(&chunk);
}
}
Ok(output)
}
pub fn uncompress_pkg(compressed_file: &str, target: &Path, log: &Logger) -> Result<(), Error> {
let target_path = Path::new(target);
let mut xar = PkgReader::new(File::open(compressed_file)?)?.into_inner();
let payload_path = xar
.files()?
.into_iter()
.map(|(name, _)| name)
.find(|name| name == "Payload" || name.ends_with("/Payload"))
.ok_or(anyhow!("Unable to extract PKG: no Payload found"))?;
let payload = xar
.get_file_data_from_path(&payload_path)?
.ok_or(anyhow!("Unable to extract PKG: empty Payload"))?;
// Newer macOS packages (e.g. Firefox beta) wrap the cpio Payload in the pbzx
// format, which apple-flat-package cannot decode. Unwrap pbzx to the raw cpio
// stream; gzip and uncompressed payloads are handled by payload_reader as-is.
let payload = if payload.len() >= PBZX_MAGIC.len() && payload[..PBZX_MAGIC.len()] == PBZX_MAGIC
{
log.trace("Decoding pbzx-compressed Payload".to_string());
decode_pbzx(&payload)?
} else {
payload
};
let package = ComponentPackageReader::from_file_data(None, None, Some(payload), None)?;
if let Some(mut cpio_reader) = package.payload_reader()? {
while let Some(next) = cpio_reader.next() {
let entry = next?;
let name = entry.name();
check_path_traversal(Path::new(name))?;View on GitHub (pinned to aa36b38e69)
Solutions
- Re-download the installer to rule out a truncated file
- Verify the Payload entry in the PKG contains data (xar -xf file.pkg and inspect the Payload size)
- Try a different browser version whose installer uses a standard payload layout
When it happens
Trigger: Thrown at rust/src/files.rs:293 when the library encounters an invalid state.
Common situations: Occurs when the PKG Payload exists but contains no data, usually due to a corrupted or truncated download. Re-download the file and verify its size/checksum before extracting.
AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14).
Data as JSON: /api/errors/1a23e4e493818718.
Report an issue: GitHub.