prestodb/presto · error · PrestoException
LANCE_ERROR
LANCE_ERROR
Error message
Failed to parse Arrow schema
What it means
KafkaPageSinkProvider/LancePageSinkProvider.createPageSink could not deserialize the table's Arrow schema from the JSON string carried in the writable table handle; the schema JSON is malformed or does not match an Arrow Schema, so the page sink cannot be constructed.
Source
Thrown at presto-lance/src/main/java/com/facebook/presto/lance/LancePageSinkProvider.java:77
@Override
public ConnectorPageSink createPageSink(
ConnectorTransactionHandle transactionHandle,
ConnectorSession session,
ConnectorInsertTableHandle insertTableHandle,
PageSinkContext pageSinkContext)
{
LanceWritableTableHandle handle = (LanceWritableTableHandle) insertTableHandle;
return createPageSink(handle);
}
private ConnectorPageSink createPageSink(LanceWritableTableHandle handle)
{
Schema arrowSchema;
try {
arrowSchema = Schema.fromJSON(handle.getSchemaJson());
}
catch (IOException e) {
throw new PrestoException(LanceErrorCode.LANCE_ERROR,
"Failed to parse Arrow schema", e);
}
return new LancePageSink(
handle.getTablePath(),
arrowSchema,
handle.getInputColumns(),
jsonCodec,
namespaceHolder.getAllocator());
}
}
View on GitHub (pinned to 55bb57d202)
Solutions
- Check how the schema JSON was produced during planning; it must be Schema.toJSON output
- Verify connector and coordinator versions match so the schema round-trips identically
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at presto-lance/src/main/java/com/facebook/presto/lance/LancePageSinkProvider.java:77 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/e1b199869dc9dfc2.
Report an issue: GitHub.