{"record":{"id":"0e1adbcad62dba0a","repo":"gradle/gradle","slug":"providers-passed-to-attributeprovider-attribute-p","errorCode":null,"errorMessage":"Providers passed to attributeProvider(Attribute, Provider) must always be present when queried.","messagePattern":"Providers passed to attributeProvider\\(Attribute, Provider\\) must always be present when queried\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"platforms/core-configuration/model-core/src/main/java/org/gradle/api/internal/provider/DelegatingProviderWithValue.java","lineNumber":47,"sourceCode":" * the provider's value when calling {@link #calculatePresence(ValueConsumer)}, and therefore\n * avoid eagerly realizing that value before it is actually needed.\n */\npublic class DelegatingProviderWithValue<T> extends AbstractProviderWithValue<T> {\n\n    private final ProviderInternal<T> delegate;\n    private final String nonPresentMessage;\n\n    public DelegatingProviderWithValue(ProviderInternal<T> delegate, String nonPresentMessage) {\n        this.delegate = delegate;\n        this.nonPresentMessage = nonPresentMessage;\n    }\n\n    @Override\n    protected Value<? extends T> calculateOwnValue(ValueConsumer consumer) {\n        try (EvaluationScopeContext ignored = openScope()) {\n            Value<? extends T> value = delegate.calculateValue(consumer);\n            if (value.isMissing()) {\n                throw new IllegalStateException(nonPresentMessage);\n            }\n            return value;\n        } catch (Exception e) {\n            throw UncheckedException.throwAsUncheckedException(e);\n        }\n    }\n\n    @Nullable\n    @Override\n    public Class<T> getType() {\n        return delegate.getType();\n    }\n\n}\n","sourceCodeStart":29,"sourceCodeEnd":62,"githubUrl":"https://github.com/gradle/gradle/blob/534f27719b66953f95cc907aae7f2c1b12f5482d/platforms/core-configuration/model-core/src/main/java/org/gradle/api/internal/provider/DelegatingProviderWithValue.java#L29-L62","documentation":"Gradle throws this error when the following condition is violated: Providers passed to attributeProvider(Attribute, Provider) must always be present when queried.","triggerScenarios":"Thrown at platforms/core-configuration/model-core/src/main/java/org/gradle/api/internal/provider/DelegatingProviderWithValue.java:47 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Review the values passed to this API and correct the invalid input described in the error message."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"534f27719b66953f95cc907aae7f2c1b12f5482d","analyzedAt":"2026-08-22T08:09:12.375Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}