microg/GmsCore · error · RuntimeException
Unsupported cursor on this platform!
Error message
Unsupported cursor on this platform!
What it means
Thrown in DataHolder.getCursorType when the Cursor is not an AbstractWindowedCursor, so CursorWindow-based type introspection (isNull/isLong/isFloat/isString) cannot be used on this platform. It signals an unsupported platform cursor implementation, not bad input data.
Source
Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:182
if (cursor instanceof AbstractWindowedCursor) {
CursorWindow cursorWindow = ((AbstractWindowedCursor) cursor).getWindow();
int pos = cursor.getPosition();
int type = -1;
if (cursorWindow.isNull(pos, i)) {
type = FIELD_TYPE_NULL;
} else if (cursorWindow.isLong(pos, i)) {
type = FIELD_TYPE_INTEGER;
} else if (cursorWindow.isFloat(pos, i)) {
type = FIELD_TYPE_FLOAT;
} else if (cursorWindow.isString(pos, i)) {
type = FIELD_TYPE_STRING;
} else if (cursorWindow.isBlob(pos, i)) {
type = FIELD_TYPE_BLOB;
}
return type;
}
throw new RuntimeException("Unsupported cursor on this platform!");
}
/**
* Closes the data holder, releasing all of its resources and making it completely invalid.
*/
@Override
public void close() {
synchronized (this) {
if (!closed) {
closed = true;
for (CursorWindow window : windows) {
window.close();
}
}
}
}
/**View on GitHub (pinned to 157c9d86ac)
Solutions
- Verify the Cursor passed to DataHolder comes from a SQLiteDatabase query (which returns AbstractWindowedCursor) rather than a custom wrapper
- Wrap or replace the cursor with a CursorWindow-compatible implementation before creating the DataHolder
- Extend AbstractWindowedCursor in the custom Cursor implementation
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:182 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/49b9c84e371d9e33.
Report an issue: GitHub.