microg/GmsCore · error · RuntimeException
Not yet available
Error message
Not yet available
What it means
Thrown in DataHolder.copyToBuffer when a String value is requested from a cursor window but no value is present at that row/column position — a sentinel for a not-yet-populated string value rather than a user-input error.
Source
Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:211
for (CursorWindow window : windows) {
window.close();
}
}
}
}
/**
* Copies the String content in the given column at the provided position into a {@link CharArrayBuffer}.
* This will throw an {@link IllegalArgumentException} if the column does not exist, the
* position is invalid, or the data holder has been closed.
*
* @param column The column to retrieve.
* @param row The row to retrieve the data from.
* @param windowIndex Index of the cursor window to extract the data from.
* @param dataOut The {@link CharArrayBuffer} to copy into.
*/
public void copyToBuffer(String column, int row, int windowIndex, CharArrayBuffer dataOut) {
throw new RuntimeException("Not yet available");
}
@SuppressWarnings("deprecation")
private static CursorWindow[] createCursorWindows(Builder builder) {
if (builder.columns.length == 0) return new CursorWindow[0];
List<CursorWindow> windows = new ArrayList<CursorWindow>();
try {
CursorWindow current = null;
for (int rowIndex = 0; rowIndex < builder.rows.size(); rowIndex++) {
Map<String, Object> row = builder.rows.get(rowIndex);
if (current == null || !current.allocRow()) {
current = new CursorWindow(false);
current.setStartPosition(rowIndex);
current.setNumColumns(builder.columns.length);
windows.add(current);
if (!current.allocRow()) {
windows.remove(current);
return windows.toArray(new CursorWindow[windows.size()]);View on GitHub (pinned to 157c9d86ac)
Solutions
- Check the value with getString(index) and handle null before copying into the CharArrayBuffer
- Verify the row and column indices are in bounds and the column holds a string
- Ensure the DataHolder was fully populated from its cursor before reading
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at play-services-base/src/main/java/com/google/android/gms/common/data/DataHolder.java:211 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/6003aa4fb54e610b.
Report an issue: GitHub.