apache/seatunnel · error · IOException
NebulaGraph write request failed.
Error message
NebulaGraph write request failed.
What it means
The catch-all in SessionPoolNebulaGraphClient.execute: any non-IOException exception from sessionPool.execute (connection errors from the Nebula client, runtime errors, parameter-binding issues) is wrapped as a generic IOException 'NebulaGraph write request failed.' The meaningful cause is in the wrapped exception.
Source
Thrown at seatunnel-connectors-v2/connector-nebulagraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/nebulagraph/client/SessionPoolNebulaGraphClient.java:76
e);
}
}
@Override
public void execute(String statement, Map<String, Object> parameters) throws IOException {
try {
ResultSet result = sessionPool.execute(statement, parameters);
if (!result.isSucceeded()) {
throw new IOException(
"NebulaGraph rejected the write with code "
+ result.getErrorCode()
+ ": "
+ result.getErrorMessage());
}
} catch (IOException e) {
throw e;
} catch (Exception e) {
throw new IOException("NebulaGraph write request failed.", e);
}
}
@Override
public void close() {
sessionPool.close();
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Inspect the cause chain for the real failure (connection reset, session invalid, binding error)
- Check network stability to graphd and session idle/timeout settings
- Validate that all parameter values map to supported Nebula value types
- Retry the batch — transient connection failures often succeed on retry
Defensive patterns
Strategy: retry
Validate before calling
// preflight nc -zv <graphd-host> 9669 # connectivity before job start
Try / catch
try {
client.execute(statement, params);
} catch (IOException e) {
Throwable cause = e.getCause();
if (cause instanceof RuntimeException || cause instanceof java.net.ConnectException) {
retryWithBackoff(); // transient transport failure
} else {
throw e;
}
} Prevention
- Always inspect the cause chain — this message is deliberately generic
- Harden network path between workers and graphd
- Use only Nebula-supported parameter value types
- Keep the Nebula Java client version aligned with the server
When it happens
Trigger: sessionPool.execute throws (does not return an error ResultSet): broken connection to graphd, client-side runtime exception, null/unsupported parameter value, auth token lost mid-session.
Common situations: Network blip between SeaTunnel worker and Nebula; session pool invalidating a dead session; passing a Java type the Nebula parameter binder cannot map; Nebula client library incompatibility.
Related errors
- NebulaGraph rejected the write with code ${errorCode}: ${err
- WRITE_FAILED
- Failed to write ${bufferSize} vertices to NebulaGraph tag '$
- Circular condition chain detected: '%s' already exists in th
- Condition for option '%s' has a null operator
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/d0f1ef703f066c82.
Report an issue: GitHub.