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.

Solutions

  1. If you need writable environment variables, change conductor.environment.type away from noop to a backed implementation.
  2. If noop is intentional, stop calling setEnvVariable — the feature is disabled by design.
  3. 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

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


AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14). Data as JSON: /api/errors/de276da4fdf1e9e5. Report an issue: GitHub.

Appendix: 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)