{"record":{"id":"4ce89c80c39aeb06","repo":"oracle/graal","slug":"vm-config-values-not-expected-to-be-present-in-s","errorCode":null,"errorMessage":"VM config values not expected to be present in %s:%n    %s","messagePattern":"VM config values not expected to be present in (.+?):%n    (.+?)","errorType":"exception","errorClass":"JVMCIError","httpStatus":null,"severity":"critical","filePath":"compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/GraalHotSpotVMConfigAccess.java","lineNumber":182,"sourceCode":"            return;\n        }\n        boolean warn = \"warn\".equals(value);\n        Formatter message = new Formatter().format(rawErrorMessage);\n        String javaHome = getSavedProperty(\"java.home\");\n        String vmName = getSavedProperty(\"java.vm.name\");\n        if (warn) {\n            message.format(\"%nSet the %s system property to \\\"ignore\\\" to suppress \", JVMCI_CONFIG_CHECK_PROP_NAME);\n            message.format(\"this warning and continue execution.%n\");\n        } else {\n            message.format(\"%nSet the %s system property to \\\"ignore\\\" to suppress \", JVMCI_CONFIG_CHECK_PROP_NAME);\n            message.format(\"this error or to \\\"warn\\\" to emit a warning and continue execution.%n\");\n        }\n        message.format(\"Currently used Java home directory is %s.%n\", javaHome);\n        message.format(\"Currently used VM configuration is: %s%n\", vmName);\n        if (warn) {\n            System.err.println(message);\n        } else {\n            throw new JVMCIError(message.toString());\n        }\n    }\n\n    /**\n     * @see HotSpotVMConfigAccess#getAddress(String, Long)\n     */\n    public long getAddress(String name, Long notPresent, boolean expectPresent) {\n        if (isPresent(name, vmAddresses, expectPresent)) {\n            return access.getAddress(name, notPresent);\n        }\n        return notPresent;\n    }\n\n    /**\n     * @see HotSpotVMConfigAccess#getAddress(String)\n     */\n    public long getAddress(String name) {\n        if (isPresent(name, vmAddresses, true)) {","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/GraalHotSpotVMConfigAccess.java#L164-L200","documentation":"The mirror of the missing-values check: entries the compiler declared as NOT expected (expectPresent=false reads, or values present only on other platforms/architectures) but which DO appear in the VM config store are collected in 'unexpected' and reported by reportErrors() as JVMCIError 'VM config values not expected to be present'. It catches metadata drift in the other direction — HotSpot exposing things this Graal build assumes are absent.","triggerScenarios":"Reading a config entry with an architecture/platform-conditional expectation (e.g. an aarch64-only or Oracle-build-only constant) on a JVM where that entry is nevertheless present — typically a VM build that now exports a field for all platforms while the Graal build assumed it was conditional.","commonSituations":"Cross-version mixes where a constant became unconditional in a newer HotSpot; custom VM builds enabling optional metadata globally; Graal artifacts built from different HotSpot sources than the running VM.","solutions":["Align the Graal/JVMCI build with the running JDK's HotSpot sources so present/absent expectations match","Rebuild or upgrade the compiler so the entry's expectPresent flag reflects the current VM","Use -Ddebug.jdk.graal.jvmciConfigCheck=warn only as a temporary bring-up measure to confirm nothing else breaks"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Build Graal against the exact HotSpot sources it will run on","Treat 'unexpected present' reports as version skew, same as missing values","Keep arch-conditional constant expectations in sync when porting"],"tags":["graal-compiler","jvmci","vm-config","version-mismatch"],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}