conductor-oss/conductor · error · TransientException

Failed to remove event execution for event: %s, handler: %s

Error message

Failed to remove event execution for event: %s, handler: %s

What it means

removeEventExecution wraps DriverException in a TransientException naming the event and handler. Deletion failures are treated as retriable and the framework RetryTemplate retries up to 3 times.

Source

Thrown at cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraExecutionDAO.java:705

    }

    @Override
    public void removeEventExecution(EventExecution eventExecution) {
        try {
            recordCassandraDaoEventRequests("removeEventExecution", eventExecution.getEvent());
            session.execute(
                    deleteEventExecutionStatement.bind(
                            eventExecution.getMessageId(),
                            eventExecution.getName(),
                            eventExecution.getId()));
        } catch (DriverException e) {
            Monitors.error(CLASS_NAME, "removeEventExecution");
            String errorMsg =
                    String.format(
                            "Failed to remove event execution for event: %s, handler: %s",
                            eventExecution.getEvent(), eventExecution.getName());
            LOGGER.error(errorMsg, e);
            throw new TransientException(errorMsg);
        }
    }

    @VisibleForTesting
    List<EventExecution> getEventExecutions(
            String eventHandlerName, String eventName, String messageId) {
        try {
            return session
                    .execute(selectEventExecutionsStatement.bind(messageId, eventHandlerName))
                    .all()
                    .stream()
                    .filter(row -> !row.isNull(PAYLOAD_KEY))
                    .map(row -> readValue(row.getString(PAYLOAD_KEY), EventExecution.class))
                    .collect(Collectors.toList());
        } catch (DriverException e) {
            String errorMsg =
                    String.format(
                            "Failed to fetch event executions for event: %s, handler: %s",

View on GitHub (pinned to cf7c3e4a8a)

Solutions

  1. Confirm Cassandra health and that the delete consistency is reachable.
  2. Monitor tombstone/compaction activity on the events table if deletes are slow/timing out.
  3. Tune driver timeouts and rely on the framework retry; inspect the logged cause if it fails through.
  4. Ensure RF supports the configured consistency under node loss.
Defensive patterns

Strategy: retry

Try / catch

RetryTemplate retry = RetryTemplate.builder().retryOn(TransientException.class).maxAttempts(3).noBackoff().build();
retry.execute(ctx -> { executionDAO.removeEventExecution(eventExecution); return null; });

Prevention

When it happens

Trigger: Deleting an EventExecution row fails at the driver level — node down, delete timeout, consistency not met.

Common situations: Cluster degradation; tombstone/compaction pressure causing delete latency; driver pool exhaustion.

Related errors


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