prestodb/presto · error · IllegalArgumentException
invalid extra field length
Error message
invalid extra field length
What it means
Guard in setExtra: the serialized extra-field data for a ZIP entry exceeds the 16-bit maximum (0xffff) that the extra field length can express. The ZIP format simply cannot store a larger extra block, so both entry construction and reading reject it.
Source
Thrown at presto-druid/src/main/java/com/facebook/presto/druid/zip/ZipFileEntry.java:346
if (localHeaderOffset > 0xffffffffL) {
featureSet.add(Feature.ZIP64_OFFSET);
}
else {
featureSet.remove(Feature.ZIP64_OFFSET);
}
this.localHeaderOffset = localHeaderOffset;
}
public long getLocalHeaderOffset()
{
return localHeaderOffset;
}
public void setExtra(ExtraDataList extra)
{
checkArgument(extra != null, "Zip file data could not be null");
if (extra.getLength() > 0xffff) {
throw new IllegalArgumentException("invalid extra field length");
}
this.extra = extra;
}
public ExtraDataList getExtra()
{
return extra;
}
public void setComment(@Nullable String comment)
{
this.comment = comment;
}
public String getComment()
{
return comment;
}View on GitHub (pinned to 55bb57d202)
Solutions
- Trim extra fields to fit within 65535 bytes
- Move large metadata out of the ZIP extra field
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-druid/src/main/java/com/facebook/presto/druid/zip/ZipFileEntry.java:346 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/8dc51f0cee30e839.
Report an issue: GitHub.