prestodb/presto · error · IllegalArgumentException

Unsupported encoding

Error message

Unsupported encoding 

What it means

Thrown from startStripe's switch on the column's encoding kind (e.g. DIRECT, DICTIONARY_V2 handled; anything else falls through) — the stripe uses a slice encoding this reader cannot dispatch to, e.g. a writer-emitted encoding unsupported for varchar columns.

Source

Thrown at presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java:109

                currentReader = directReader;
                if (dictionaryReader != null && context.isResetAllReaders()) {
                    dictionaryReader = null;
                    System.setProperty("RESET_SLICE_READER", "RESET_SLICE_READER");
                }
                break;
            case DICTIONARY:
            case DICTIONARY_V2:
                if (dictionaryReader == null) {
                    dictionaryReader = new SliceDictionarySelectiveReader(context);
                }
                currentReader = dictionaryReader;
                if (directReader != null && context.isResetAllReaders()) {
                    directReader = null;
                    System.setProperty("RESET_SLICE_READER", "RESET_SLICE_READER");
                }
                break;
            default:
                throw new IllegalArgumentException("Unsupported encoding " + kind);
        }

        currentReader.startStripe(timezone, stripe);
    }

    @Override
    public void startRowGroup(InputStreamSources dataStreamSources)
            throws IOException
    {
        currentReader.startRowGroup(dataStreamSources);
    }

    @Override
    public String toString()
    {
        return toStringHelper(this)
                .addValue(context.getStreamDescriptor())
                .toString();

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Rewrite the file using a standard DIRECT or DICTIONARY(_V2) encoding
  2. Upgrade Presto to a release supporting the encoding shown in the message
  3. Inspect footer metadata to confirm the encoding kind and rule out corruption
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java:109 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/a24178db79498fc7. Report an issue: GitHub.