microg/GmsCore · error · IllegalArgumentException
Unsupported object for column
Error message
Unsupported object for column
What it means
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.
Source
Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:252
if (val == null) {
current.putNull(rowIndex, columnIndex);
} else if (val instanceof String) {
current.putString((String) val, rowIndex, columnIndex);
} else if (val instanceof Long) {
current.putLong((Long) val, rowIndex, columnIndex);
} else if (val instanceof Integer) {
current.putLong((Integer) val, rowIndex, columnIndex);
} else if (val instanceof Boolean) {
if ((Boolean) val)
current.putLong(1, rowIndex, columnIndex);
} else if (val instanceof byte[]) {
current.putBlob((byte[]) val, rowIndex, columnIndex);
} else if (val instanceof Double) {
current.putDouble((Double) val, rowIndex, columnIndex);
} else if (val instanceof Float) {
current.putDouble((Float) val, rowIndex, columnIndex);
} else {
throw new IllegalArgumentException("Unsupported object for column " + columnIndex + ": " + val);
}
}
}
} catch (RuntimeException e) {
for (CursorWindow window : windows) {
window.close();
}
throw e;
}
return windows.toArray(new CursorWindow[windows.size()]);
}
private static CursorWindow[] createCursorWindows(Cursor cursor) {
if (cursor.getColumnCount() == 0) return new CursorWindow[0];
List<CursorWindow> windows = new ArrayList<CursorWindow>();
CursorWindow current = null;
int rowIndex = 0;
while (cursor.moveToNext()) {View on GitHub (pinned to 157c9d86ac)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:252 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of microg/GmsCore@157c9d86ac (2026-09-06).
Data as JSON: /api/errors/6eedc3c758eb6180.
Report an issue: GitHub.