{"record":{"id":"d6398eaf728672a2","repo":"apache/seatunnel","slug":"unsupported-data-type-d6398e","errorCode":"UNSUPPORTED_DATA_TYPE","errorMessage":"DeepLake sink does not support binary values inside arrays","messagePattern":"DeepLake sink does not support binary values inside arrays","errorType":"error_code","errorClass":"DeepLakeConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-deeplake/src/main/java/org/apache/seatunnel/connectors/seatunnel/deeplake/client/DeepLakeSql.java","lineNumber":128,"sourceCode":"            case BIGINT:\n                return \"BIGINT\";\n            case FLOAT:\n                return \"REAL\";\n            case DOUBLE:\n                return \"DOUBLE PRECISION\";\n            case DECIMAL:\n                DecimalType decimalType = (DecimalType) type;\n                return \"NUMERIC(\"\n                        + decimalType.getPrecision()\n                        + \", \"\n                        + decimalType.getScale()\n                        + \")\";\n            case STRING:\n                return \"TEXT\";\n            case BYTES:\n            case BINARY_VECTOR:\n                if (arrayElement) {\n                    throw new DeepLakeConnectorException(\n                            DeepLakeConnectorErrorCode.UNSUPPORTED_DATA_TYPE,\n                            \"DeepLake sink does not support binary values inside arrays\");\n                }\n                return \"BYTEA\";\n            case DATE:\n                return \"DATE\";\n            case TIME:\n                return \"TIME\";\n            case TIMESTAMP:\n                return \"TIMESTAMP\";\n            case TIMESTAMP_TZ:\n                return \"TIMESTAMPTZ\";\n            case FLOAT_VECTOR:\n                return \"FLOAT4[]\";\n            case ARRAY:\n                ArrayType<?, ?> arrayType = (ArrayType<?, ?>) type;\n                return toDeepLakeType(arrayType.getElementType(), true) + \"[]\";\n            default:","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-deeplake/src/main/java/org/apache/seatunnel/connectors/seatunnel/deeplake/client/DeepLakeSql.java#L110-L146","documentation":"When mapping a SeaTunnel schema to Deep Lake column types, BYTES or BINARY_VECTOR columns nested inside an ARRAY are rejected with DeepLakeConnectorException(UNSUPPORTED_DATA_TYPE). Deep Lake has no array-of-binary column representation, so the sink refuses to create such a table instead of silently degrading data.","triggerScenarios":"Creating a Deep Lake table via DeepLakeSql.toDeepLakeType when the schema contains ArrayType<BYTES> or ArrayType<BINARY_VECTOR>, i.e. the recursive call has arrayElement=true on a binary type.","commonSituations":"Sources with arrays of binary blobs (protobuf payloads, grouped image byte arrays); schema auto-inference producing array<bytes> from JSON sources.","solutions":["Make binary values top-level BYTES/BINARY_VECTOR columns instead of array elements","Serialize array binary elements to STRING (e.g. base64) before the sink","Drop or split the offending column in a transform before writing to Deep Lake"],"exampleFix":"// before\nfield bytes_list array<bytes>\n// after\nfield bytes_list string // base64-encoded elements, or a top-level bytes column","handlingStrategy":"validation","validationCode":"for (SeaTunnelType<?> t : rowType.getFieldTypes()) {\n  if (t instanceof ArrayType<?,?> at) {\n    SqlType el = at.getElementType().getSqlType();\n    if (el == SqlType.BYTES || el == SqlType.BINARY_VECTOR)\n      throw new IllegalStateException(\"Binary inside arrays unsupported by DeepLake sink\");\n  }\n}","typeGuard":"boolean isBinaryInArray(SeaTunnelType<?> t) { return t instanceof ArrayType<?,?> at && (at.getElementType().getSqlType() == SqlType.BYTES || at.getElementType().getSqlType() == SqlType.BINARY_VECTOR); }","tryCatchPattern":"try { createTable(schema); } catch (DeepLakeConnectorException e) { if (\"UNSUPPORTED_DATA_TYPE\".equals(e.getErrorCode())) { schema = encodeBinaryAsBase64(schema); createTable(schema); } else { throw e; } }","preventionTips":["Keep binary columns top-level, never inside arrays","Inspect source schemas (JSON/CDC) for array<bytes> before targeting Deep Lake","Base64-encode binary array data into STRING columns upstream"],"tags":["deeplake","schema","unsupported-type"],"backgroundTag":"unsupported-dtype","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"}