{"record":{"id":"dec4e62d6be0625c","repo":"microg/GmsCore","slug":"is-not-an-parcelable","errorCode":null,"errorMessage":" is not an Parcelable","messagePattern":" is not an Parcelable","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"play-services-basement/src/main/java/org/microg/safeparcel/SafeParcelReflectionUtil.java","lineNumber":115,"sourceCode":"                    SafeParcelReader.skip(parcel, header);\n                }\n            }\n        }\n        if (parcel.dataPosition() > end) {\n            throw new RuntimeException(\"Overread allowed size end=\" + end);\n        }\n    }\n\n    @SuppressWarnings(\"unchecked\")\n    private static Parcelable.Creator<Parcelable> getCreator(Field field) {\n        Class<?> clazz = field.getType();\n        if (clazz.isArray()) {\n            clazz = clazz.getComponentType();\n        }\n        if (clazz != null && Parcelable.class.isAssignableFrom(clazz)) {\n            return getCreator((Class<? extends Parcelable>) clazz);\n        }\n        throw new RuntimeException(clazz + \" is not an Parcelable\");\n    }\n\n    @SuppressWarnings(\"unchecked\")\n    public static Parcelable.Creator<Parcelable> getCreator(Class<? extends Parcelable> clazz) {\n        try {\n            Field creatorField = clazz.getDeclaredField(\"CREATOR\");\n            creatorField.setAccessible(true);\n            return (Parcelable.Creator<Parcelable>) creatorField.get(null);\n        } catch (NoSuchFieldException e) {\n            throw new RuntimeException(clazz + \" is an Parcelable without CREATOR\");\n        } catch (IllegalAccessException e) {\n            throw new RuntimeException(\"CREATOR in \" + clazz + \" is not accessible\");\n        }\n    }\n\n    @SuppressWarnings(\"deprecation\")\n    private static Class<?> getSubClass(Field field) {\n        SafeParceled safeParceled = field.getAnnotation(SafeParceled.class);","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-basement/src/main/java/org/microg/safeparcel/SafeParcelReflectionUtil.java#L97-L133","documentation":"Guard in SafeParcelReflectionUtil.getCreator(Field): the field's type (or array component type) does not implement Parcelable, so no CREATOR can be resolved for it. The offending class name is embedded in the message; it indicates a field-type/classpath mismatch against the Parcelable contract.","triggerScenarios":"Thrown at play-services-basement/src/main/java/org/microg/safeparcel/SafeParcelReflectionUtil.java:115 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the field's type implement Parcelable (or change the field type)","Ensure the expected Parcelable subclass is on the classpath"],"exampleFix":null,"handlingStrategy":"type-guard","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"}