{"record":{"id":"fb93a60b4e030467","repo":"apache/seatunnel","slug":"flush-data-failed-fb93a6","errorCode":"FLUSH_DATA_FAILED","errorMessage":"Unable to flush data to StarRocks: unknown result status. {loadResult}","messagePattern":"Unable to flush data to StarRocks: unknown result status\\. (.+?)","errorType":"error_code","errorClass":"StarRocksConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/client/StarRocksStreamLoadVisitor.java","lineNumber":131,"sourceCode":"                        .append(\"/_stream_load\")\n                        .toString();\n        if (LOG.isDebugEnabled()) {\n            LOG.debug(\n                    String.format(\n                            \"Start to join batch data: rows[%d] bytes[%d] label[%s].\",\n                            flushData.getRows().size(),\n                            flushData.getBytes(),\n                            flushData.getLabel()));\n        }\n        Map<String, Object> loadResult =\n                httpHelper.doHttpPut(\n                        loadUrl,\n                        joinRows(flushData.getRows(), flushData.getBytes()),\n                        getStreamLoadHttpHeader(flushData.getLabel()));\n        final String keyStatus = \"Status\";\n        if (null == loadResult || !loadResult.containsKey(keyStatus)) {\n            LOG.error(\"unknown result status. {}\", loadResult);\n            throw new StarRocksConnectorException(\n                    StarRocksConnectorErrorCode.FLUSH_DATA_FAILED,\n                    \"Unable to flush data to StarRocks: unknown result status. \" + loadResult);\n        }\n        if (LOG.isDebugEnabled()) {\n            LOG.debug(\"StreamLoad response:\\n\" + JsonUtils.toJsonString(loadResult));\n        }\n        Object resultStatus = loadResult.get(keyStatus);\n        if (RESULT_SUCCESS.equals(resultStatus) || RESULT_PUBLISH_TIMEOUT.equals(resultStatus)) {\n            return true;\n        }\n        if (RESULT_LABEL_EXISTED.equals(resultStatus)) {\n            LOG.debug(\"StreamLoad response:\\n\" + JsonUtils.toJsonString(loadResult));\n            // The original request may already be committed, so never resend it under a new label\n            // until StarRocks reports the final state of the existing label.\n            checkLabelState(host, flushData.getLabel());\n            return true;\n        }\n        if (RESULT_FAILED.equals(resultStatus)) {","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/client/StarRocksStreamLoadVisitor.java#L113-L149","documentation":"Thrown by StarRocksStreamLoadVisitor.doStreamLoad() when the Stream Load HTTP response is null or lacks the 'Status' key, so the result cannot be interpreted. Logged as 'unknown result status' with the full response body before throwing FLUSH_DATA_FAILED.","triggerScenarios":"The HTTP helper returns null (request failed with no body) or the parsed JSON response has no 'Status' field — e.g., an FE/BE proxy returned an HTML error page, auth challenge, or non-JSON payload.","commonSituations":"Response intercepted by a load balancer returning HTML 502/503 pages; wrong HTTP header expectation when going through a proxy; basic-auth challenge page; StarRocks version returning a different response shape; empty body on 500 errors.","solutions":["Read the logged 'unknown result status. {...}' payload to see what the server actually returned.","Check for proxies/LBs between SeaTunnel and StarRocks rewriting the response; bypass them for FE hosts.","Verify StarRocks credentials and that the response is JSON (correct Content-Type handling).","Upgrade/align StarRocks version if the response schema differs from expected."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    sink.write(rows);\n} catch (StarRocksConnectorException e) {\n    if (e.getMessage() != null && e.getMessage().contains(\"unknown result status\")) {\n        // capture the logged response body; check proxies/fe version\n    }\n}","preventionTips":["Keep SeaTunnel workers talking directly to FE hosts, not through rewriting proxies","Verify basic-auth credentials so no HTML challenge page is returned","Pin and test the StarRocks version used with the connector"],"tags":["starrocks","stream-load","http-response","json"],"backgroundTag":"unexpected-response-shape","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"}