{"record":{"id":"6eedc3c758eb6180","repo":"microg/GmsCore","slug":"unsupported-object-for-column","errorCode":null,"errorMessage":"Unsupported object for column ","messagePattern":"Unsupported object for column ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java","lineNumber":252,"sourceCode":"                    if (val == null) {\n                        current.putNull(rowIndex, columnIndex);\n                    } else if (val instanceof String) {\n                        current.putString((String) val, rowIndex, columnIndex);\n                    } else if (val instanceof Long) {\n                        current.putLong((Long) val, rowIndex, columnIndex);\n                    } else if (val instanceof Integer) {\n                        current.putLong((Integer) val, rowIndex, columnIndex);\n                    } else if (val instanceof Boolean) {\n                        if ((Boolean) val)\n                            current.putLong(1, rowIndex, columnIndex);\n                    } else if (val instanceof byte[]) {\n                        current.putBlob((byte[]) val, rowIndex, columnIndex);\n                    } else if (val instanceof Double) {\n                        current.putDouble((Double) val, rowIndex, columnIndex);\n                    } else if (val instanceof Float) {\n                        current.putDouble((Float) val, rowIndex, columnIndex);\n                    } else {\n                        throw new IllegalArgumentException(\"Unsupported object for column \" + columnIndex + \": \" + val);\n                    }\n                }\n            }\n        } catch (RuntimeException e) {\n            for (CursorWindow window : windows) {\n                window.close();\n            }\n            throw e;\n        }\n        return windows.toArray(new CursorWindow[windows.size()]);\n    }\n\n    private static CursorWindow[] createCursorWindows(Cursor cursor) {\n        if (cursor.getColumnCount() == 0) return new CursorWindow[0];\n        List<CursorWindow> windows = new ArrayList<CursorWindow>();\n        CursorWindow current = null;\n        int rowIndex = 0;\n        while (cursor.moveToNext()) {","sourceCodeStart":234,"sourceCodeEnd":270,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java#L234-L270","documentation":"Validation guard in DataHolder.createCursorWindows: a value in a row map is not one of the supported types (null, String, Long, Integer, Boolean, Double, byte[], etc.). The offending value is appended to the message; the faulty input is the unsupported column value supplied to the builder.","triggerScenarios":"Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:252 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Convert the unsupported object to a supported type (String, Long, Integer, Boolean, Double, byte[]) before adding it to the row","Add an instanceof check on dynamic values and normalize them before building the DataHolder"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"157c9d86ac46c195a86c2f15ab55c84036223f95","analyzedAt":"2026-09-06T17:27:33.892Z","contentChangedAt":"2026-09-06T17:27:33.892Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}