conductor-oss/conductor · error · UnsupportedOperationException
This method is not implemented in CassandraPollDataDAO…
Error message
This method is not implemented in CassandraPollDataDAO. Please use ExecutionDAOFacade instead.
What it means
CassandraPollDataDAO is an explicit stub: it throws UnsupportedOperationException for updateLastPollData because poll-data persistence is intentionally not implemented for the Cassandra backend. The message directs callers to ExecutionDAOFacade, which is the supported entry point for poll data when running on Cassandra.
Solutions
- Use ExecutionDAOFacade.updateLastPollData(...) instead of calling the DAO directly.
- If persistent poll data is a hard requirement, switch to a backend that implements PollDataDAO (redis/postgres).
- Otherwise, treat poll data as unsupported on Cassandra and remove the direct DAO call.
Example fix
// before: direct DAO call - throws on Cassandra pollDataDAO.updateLastPollData(taskDefName, domain, workerId); // after: go through the facade executionDAOFacade.updateLastPollData(taskDefName, domain, workerId);
Defensive patterns
Strategy: fallback
Validate before calling
// Detect the Cassandra stub before calling, and route through the facade
if (pollDataDAO instanceof CassandraPollDataDAO) {
executionDAOFacade.updateLastPollData(taskDefName, domain, workerId);
} else {
pollDataDAO.updateLastPollData(taskDefName, domain, workerId);
} Try / catch
// Fall back to the facade when the DAO is unsupported
try {
pollDataDAO.updateLastPollData(taskDefName, domain, workerId);
} catch (UnsupportedOperationException e) {
executionDAOFacade.updateLastPollData(taskDefName, domain, workerId);
} Prevention
- Never inject PollDataDAO directly on Cassandra deployments - use ExecutionDAOFacade.
- When porting logic from redis/postgres, audit all PollDataDAO calls.
- Document that Cassandra does not persist poll data.
When it happens
Trigger: Code calls pollDataDAO.updateLastPollData(taskDefName, domain, workerId) directly on the injected PollDataDAO bean while Cassandra is the active persistence backend.
Common situations: Porting custom instrumentation or worker logic from the Redis/Postgres backend (which implement PollDataDAO) to Cassandra; injecting PollDataDAO directly instead of using ExecutionDAOFacade.
Related errors
- Action not supported
- Agent Card resolved from
- AGENT requires one of: message, parts, text, or prompt
- Bad/Unsupported schema?
- Cannot set event processor thread count to <=0. To disable…
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/567c84a7e5f438a6.
Report an issue: GitHub.
Appendix: source
Thrown at cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraPollDataDAO.java:28
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
package com.netflix.conductor.cassandra.dao;
import java.util.List;
import com.netflix.conductor.common.metadata.tasks.PollData;
import com.netflix.conductor.dao.PollDataDAO;
/**
* This is a dummy implementation and this feature is not implemented for Cassandra backed
* Conductor.
*/
public class CassandraPollDataDAO implements PollDataDAO {
@Override
public void updateLastPollData(String taskDefName, String domain, String workerId) {
throw new UnsupportedOperationException(
"This method is not implemented in CassandraPollDataDAO. Please use ExecutionDAOFacade instead.");
}
@Override
public PollData getPollData(String taskDefName, String domain) {
throw new UnsupportedOperationException(
"This method is not implemented in CassandraPollDataDAO. Please use ExecutionDAOFacade instead.");
}
@Override
public List<PollData> getPollData(String taskDefName) {
throw new UnsupportedOperationException(
"This method is not implemented in CassandraPollDataDAO. Please use ExecutionDAOFacade instead.");
}
}
View on GitHub (pinned to cf7c3e4a8a)