conductor-oss/conductor · warning · UnsupportedOperationException
environment variables are disabled
Error message
environment variables are disabled
What it means
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.
Source
Thrown at core/src/main/java/com/netflix/conductor/core/env/NoopEnvironmentDAO.java:35
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import com.netflix.conductor.common.metadata.EnvironmentVariable;
import com.netflix.conductor.dao.EnvironmentDAO;
@Component
@ConditionalOnProperty(name = "conductor.environment.type", havingValue = "noop")
public class NoopEnvironmentDAO implements EnvironmentDAO {
@Override
public String getEnvVariable(String key) {
return null;
}
@Override
public void setEnvVariable(String key, String value) {
throw new UnsupportedOperationException("environment variables are disabled");
}
@Override
public void delete(String key) {
throw new UnsupportedOperationException("environment variables are disabled");
}
@Override
public List<EnvironmentVariable> getAll() {
return Collections.emptyList();
}
}
View on GitHub (pinned to cf7c3e4a8a)
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.
Defensive patterns
Strategy: validation
Validate before calling
// Check feature enabled before writing
if (environmentVariablesEnabled) {
environmentDAO.setEnvVariable(key, value);
} Try / catch
try {
environmentDAO.setEnvVariable(key, value);
} catch (UnsupportedOperationException e) {
// noop DAO -> feature disabled; surface 'disabled' to the caller
} Prevention
- 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.
When it happens
Trigger: Calling environmentDAO.setEnvVariable(key, value) when the server is configured with conductor.environment.type=noop.
Common situations: 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.
Related errors
- env-backed environment variables are read-only
- secrets are disabled
- Action not supported %s for event %s
- Skill registry is not available
- llmProvider not specified: {name}
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/de276da4fdf1e9e5.
Report an issue: GitHub.