{"record":{"id":"b71c5840c3a87384","repo":"OtterMind/Chat2DB","slug":"unsupported-ewkb-geometry-type","errorCode":null,"errorMessage":"Unsupported EWKB geometry type","messagePattern":"Unsupported EWKB geometry type","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"chat2db-community-server/chat2db-community-plugins/chat2db-community-postgresql/src/main/java/ai/chat2db/plugin/postgresql/value/sub/PostgreSQLGeometryProcessor.java","lineNumber":186,"sourceCode":"        }\n        return header;\n    }\n\n    private WkbHeader inspectGeometry(WkbCursor cursor, Integer inheritedSrid, boolean root, int depth) {\n        if (depth > MAX_NESTED_DEPTH) {\n            throw new IllegalArgumentException(\"EWKB nesting is too deep\");\n        }\n        ByteOrder byteOrder = readByteOrder(cursor);\n        int typeWord = cursor.readInt(byteOrder);\n        if ((typeWord & EWKB_BBOX_FLAG) != 0) {\n            throw new IllegalArgumentException(\"EWKB bounding-box headers are not supported\");\n        }\n\n        int isoType = typeWord & EWKB_TYPE_MASK;\n        int dimensionCode = isoType / 1000;\n        int baseType = isoType % 1000;\n        if (dimensionCode > 3 || baseType < 1 || baseType > 7) {\n            throw new IllegalArgumentException(\"Unsupported EWKB geometry type\");\n        }\n\n        boolean hasZ = (typeWord & EWKB_Z_FLAG) != 0 || dimensionCode == 1 || dimensionCode == 3;\n        boolean hasMeasure = (typeWord & EWKB_M_FLAG) != 0 || dimensionCode == 2 || dimensionCode == 3;\n        boolean hasSrid = (typeWord & EWKB_SRID_FLAG) != 0;\n        Integer srid = hasSrid ? cursor.readInt(byteOrder) : null;\n        if (!root && srid != null && !srid.equals(inheritedSrid)) {\n            throw new IllegalArgumentException(\"Nested EWKB SRID differs from its parent\");\n        }\n\n        WkbHeader header = new WkbHeader(baseType, hasZ, hasMeasure, srid);\n        int coordinateDimension = 2 + (hasZ ? 1 : 0) + (hasMeasure ? 1 : 0);\n        switch (baseType) {\n            case 1 -> inspectPoint(cursor, byteOrder, coordinateDimension);\n            case 2 -> inspectLineString(cursor, byteOrder, coordinateDimension);\n            case 3 -> {\n                int ringCount = readCount(cursor, byteOrder);\n                for (int i = 0; i < ringCount; i++) {","sourceCodeStart":168,"sourceCodeEnd":204,"githubUrl":"https://github.com/OtterMind/Chat2DB/blob/5ee1e990e73fbcae1969dc554be254fedb3ab888/chat2db-community-server/chat2db-community-plugins/chat2db-community-postgresql/src/main/java/ai/chat2db/plugin/postgresql/value/sub/PostgreSQLGeometryProcessor.java#L168-L204","documentation":"Error \"Unsupported EWKB geometry type\" thrown in OtterMind/Chat2DB.","triggerScenarios":"The EWKB geometry type code was not one the parser recognizes.","commonSituations":"See trigger scenarios.","solutions":["Convert the geometry to a supported EWKB geometry type (point, linestring, polygon, or standard collections)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5ee1e990e73fbcae1969dc554be254fedb3ab888","analyzedAt":"2026-08-14T07:05:03.077Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}