{"record":{"id":"d0f1ef703f066c82","repo":"apache/seatunnel","slug":"nebulagraph-write-request-failed","errorCode":null,"errorMessage":"NebulaGraph write request failed.","messagePattern":"NebulaGraph write request failed\\.","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-nebulagraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/nebulagraph/client/SessionPoolNebulaGraphClient.java","lineNumber":76,"sourceCode":"                    e);\n        }\n    }\n\n    @Override\n    public void execute(String statement, Map<String, Object> parameters) throws IOException {\n        try {\n            ResultSet result = sessionPool.execute(statement, parameters);\n            if (!result.isSucceeded()) {\n                throw new IOException(\n                        \"NebulaGraph rejected the write with code \"\n                                + result.getErrorCode()\n                                + \": \"\n                                + result.getErrorMessage());\n            }\n        } catch (IOException e) {\n            throw e;\n        } catch (Exception e) {\n            throw new IOException(\"NebulaGraph write request failed.\", e);\n        }\n    }\n\n    @Override\n    public void close() {\n        sessionPool.close();\n    }\n}\n","sourceCodeStart":58,"sourceCodeEnd":85,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-nebulagraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/nebulagraph/client/SessionPoolNebulaGraphClient.java#L58-L85","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// preflight\nnc -zv <graphd-host> 9669  # connectivity before job start","typeGuard":null,"tryCatchPattern":"try {\n    client.execute(statement, params);\n} catch (IOException e) {\n    Throwable cause = e.getCause();\n    if (cause instanceof RuntimeException || cause instanceof java.net.ConnectException) {\n        retryWithBackoff(); // transient transport failure\n    } else {\n        throw e;\n    }\n}","preventionTips":["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"],"tags":["nebulagraph","write-failed","io","unexpected-exception"],"backgroundTag":"database-write-failed","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}