{"record":{"id":"f96e1b7150d9b72d","repo":"oracle/graal","slug":"expected-guest-annotation-member-value-object-got","errorCode":null,"errorMessage":"Expected guest annotation member value object, got {}","messagePattern":"Expected guest annotation member value object, got (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"espresso-compiler-stub/src/com.oracle.truffle.espresso.vmaccess/src/com/oracle/truffle/espresso/vmaccess/EspressoExternalHostProxies.java","lineNumber":874,"sourceCode":"                }\n                continue;\n            }\n            Value memberValue;\n            if (guestMemberValue.isNull()) {\n                /* Guest module encapsulation prevented reflection; Espresso interop can invoke public members directly. */\n                try {\n                    memberValue = annotation.invokeMember(memberName);\n                } catch (PolyglotException e) {\n                    Value guestException = e.isGuestException() ? e.getGuestObject() : null;\n                    if (!recordGuestAnnotationFailure(elements, memberName, guestException, returnType)) {\n                        throw e;\n                    }\n                    continue;\n                }\n            } else if (guestMemberValue instanceof EspressoExternalObjectConstant objectConstant) {\n                memberValue = objectConstant.getValue();\n            } else {\n                throw new IllegalArgumentException(\"Expected guest annotation member value object, got \" + guestMemberValue);\n            }\n            elements.put(memberName, guestAnnotationMemberValueAsHost(memberValue, returnType));\n        }\n        return new AnnotationValue(actualAnnotationType, elements);\n    }\n\n    /**\n     * Recognizes a standard guest annotation failure and records its JVMCI representation. An\n     * incomplete annotation is represented by leaving the member absent. Returns {@code false} for\n     * exceptions unrelated to deferred annotation state so the caller can rethrow the original\n     * boundary exception.\n     */\n    private boolean recordGuestAnnotationFailure(Map<String, Object> elements, String memberName, Value guestException, JavaType expectedType) {\n        if (guestException == null || guestException.isNull()) {\n            return false;\n        }\n        Value metaObject = guestException.getMetaObject();\n        if (metaObject == null || metaObject.isNull()) {","sourceCodeStart":856,"sourceCodeEnd":892,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/espresso-compiler-stub/src/com.oracle.truffle.espresso.vmaccess/src/com/oracle/truffle/espresso/vmaccess/EspressoExternalHostProxies.java#L856-L892","documentation":"Error \"Expected guest annotation member value object, got {}\" thrown in oracle/graal.","triggerScenarios":"Thrown at espresso-compiler-stub/src/com.oracle.truffle.espresso.vmaccess/src/com/oracle/truffle/espresso/vmaccess/EspressoExternalHostProxies.java:874 when the library encounters an invalid state.","commonSituations":"Occurs when a caller violates the contract guarded by this check: Expected guest annotation member value object, got {}","solutions":["Fix the condition reported by the error: Expected guest annotation member value object, got {}","Check the throwing call site and ensure its documented preconditions (argument values, types, environment, or configuration) are satisfied before the call."],"exampleFix":"Validate inputs and environment so that the failing condition does not occur: Expected guest annotation member value object, got {}","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}