{"record":{"id":"de276da4fdf1e9e5","repo":"conductor-oss/conductor","slug":"environment-variables-are-disabled","errorCode":null,"errorMessage":"environment variables are disabled","messagePattern":"environment variables are disabled","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"warning","filePath":"core/src/main/java/com/netflix/conductor/core/env/NoopEnvironmentDAO.java","lineNumber":35,"sourceCode":"\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;\nimport org.springframework.stereotype.Component;\n\nimport com.netflix.conductor.common.metadata.EnvironmentVariable;\nimport com.netflix.conductor.dao.EnvironmentDAO;\n\n@Component\n@ConditionalOnProperty(name = \"conductor.environment.type\", havingValue = \"noop\")\npublic class NoopEnvironmentDAO implements EnvironmentDAO {\n\n    @Override\n    public String getEnvVariable(String key) {\n        return null;\n    }\n\n    @Override\n    public void setEnvVariable(String key, String value) {\n        throw new UnsupportedOperationException(\"environment variables are disabled\");\n    }\n\n    @Override\n    public void delete(String key) {\n        throw new UnsupportedOperationException(\"environment variables are disabled\");\n    }\n\n    @Override\n    public List<EnvironmentVariable> getAll() {\n        return Collections.emptyList();\n    }\n}\n","sourceCodeStart":17,"sourceCodeEnd":48,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/core/src/main/java/com/netflix/conductor/core/env/NoopEnvironmentDAO.java#L17-L48","documentation":"Thrown by NoopEnvironmentDAO.setEnvVariable. This DAO is active when conductor.environment.type=noop — it disables environment-variable storage entirely: reads return null, getAll returns empty, and all writes throw. setEnvVariable is rejected because there is no backing store.","triggerScenarios":"Calling environmentDAO.setEnvVariable(key, value) when the server is configured with conductor.environment.type=noop.","commonSituations":"An operator explicitly disabled environment variables (noop) but a client/tool still tries to write one. A feature that assumes environment variables are always available calling set against a disabled deployment.","solutions":["If you need writable environment variables, change conductor.environment.type away from noop to a backed implementation.","If noop is intentional, stop calling setEnvVariable — the feature is disabled by design.","Gate the calling code on whether environment variables are enabled before invoking set."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Check feature enabled before writing\nif (environmentVariablesEnabled) {\n    environmentDAO.setEnvVariable(key, value);\n}","typeGuard":null,"tryCatchPattern":"try {\n    environmentDAO.setEnvVariable(key, value);\n} catch (UnsupportedOperationException e) {\n    // noop DAO -> feature disabled; surface 'disabled' to the caller\n}","preventionTips":["Gate write/delete UI/API actions on conductor.environment.type being a backed impl.","If noop is intentional, do not expose write endpoints.","Document clearly which deployments support writable environment variables."],"tags":["environment-variables","disabled","noop","configuration","unsupported-operation"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}