apache/seatunnel · error · IllegalArgumentException
Unsupported task group type
Error message
Unsupported task group type: ${type} What it means
TaskGroupUtils.createTaskGroup dispatches on the configured TaskGroupType to instantiate the right queue-backed task group implementation. A type outside the supported set (e.g. not ALL_BLOCKING_QUEUE, INTERMEDIATE_BLOCKING_QUEUE, INTERMEDIATE_DISRUPTOR_QUEUE) throws this IllegalArgumentException.
Solutions
- Use a supported TaskGroupType (ALL_BLOCKING_QUEUE, INTERMEDIATE_BLOCKING_QUEUE, INTERMEDIATE_DISRUPTOR_QUEUE)
- Align all engine module versions so enum values match
- If you added a new TaskGroupType, add the corresponding case in TaskGroupUtils.createTaskGroup
- Check the code path that constructs TaskGroupLocation/type to see why an unsupported value was set
Example fix
// before TaskGroupType type = TaskGroupType.CUSTOM_QUEUE; taskGroup = TaskGroupUtils.createTaskGroup(loc, name, tasks, type); // throws // after TaskGroupType type = TaskGroupType.INTERMEDIATE_BLOCKING_QUEUE; taskGroup = TaskGroupUtils.createTaskGroup(loc, name, tasks, type);
Defensive patterns
Strategy: type-guard
Validate before calling
if (type != TaskGroupType.ALL_BLOCKING_QUEUE && type != TaskGroupType.INTERMEDIATE_BLOCKING_QUEUE && type != TaskGroupType.INTERMEDIATE_DISRUPTOR_QUEUE) { throw new IllegalArgumentException("unsupported type: " + type); } Type guard
boolean isSupportedTaskGroupType(TaskGroupType t) { return t == TaskGroupType.ALL_BLOCKING_QUEUE || t == TaskGroupType.INTERMEDIATE_BLOCKING_QUEUE || t == TaskGroupType.INTERMEDIATE_DISRUPTOR_QUEUE; } Try / catch
try { group = TaskGroupUtils.createTaskGroup(loc, name, tasks); } catch (IllegalArgumentException e) { if (e.getMessage().startsWith("Unsupported task group type")) { log.error("fallback to default queue type"); group = TaskGroupUtils.createTaskGroup(loc, name, tasks); /* default */ } else { throw e; } } Prevention
- Use only supported TaskGroupType constants
- Keep TaskGroupUtils switch in sync with the enum
- Pin consistent engine versions across the cluster
When it happens
Trigger: Calling createTaskGroup with a TaskGroupType value that has no case in the switch; engine config or plugin code requesting an unsupported task group type; enum drift between modules after an upgrade.
Common situations: Custom engine patches introducing new TaskGroupType constants without updating TaskGroupUtils; mixed worker/server jar versions; misconfigured task group type in custom deployment code.
Related errors
- task group not found.
- Unknown checkpoint type:
- Unknown TaskGroup State
- array inject error, unsupported data type: " + type
- Avro format doesn't support non-string as key type of map…
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c52d0948cc3ead75.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/execution/TaskGroupUtils.java:42
public class TaskGroupUtils {
public static TaskGroup createTaskGroup(
TaskGroupType type,
TaskGroupLocation taskGroupLocation,
String taskGroupName,
Collection<Task> tasks) {
switch (type) {
case DEFAULT:
return new TaskGroupDefaultImpl(taskGroupLocation, taskGroupName, tasks);
case INTERMEDIATE_BLOCKING_QUEUE:
return new TaskGroupWithIntermediateBlockingQueue(
taskGroupLocation, taskGroupName, tasks);
case INTERMEDIATE_DISRUPTOR_QUEUE:
return new TaskGroupWithIntermediateDisruptor(
taskGroupLocation, taskGroupName, tasks);
default:
throw new IllegalArgumentException("Unsupported task group type: " + type);
}
}
}
View on GitHub (pinned to cf67b549a7)