apache/seatunnel · error · IllegalArgumentException
input.queue is no longer supported; configure top-level queu
Error message
input.queue is no longer supported; configure top-level queue: instead.
What it means
AgentYamlConfig.normalize()/rejectLegacyQueue() enforces that the deprecated input.queue configuration key is no longer accepted. When a config file defines input.queue, the loader fails fast with this IllegalArgumentException, instructing users to move queue settings to the top-level queue: key.
Source
Thrown at seatunnel-edge-agent/seatunnel-edge-agent-starter/src/main/java/org/apache/seatunnel/edge/agent/starter/yaml/AgentYamlConfig.java:151
private String onError;
private MultilineDefinition multiline;
@JsonProperty("output-format")
private OutputFormatDefinition outputFormat;
@JsonProperty("queue")
private QueueDefinition legacyQueue;
public void ensureDefaults() {
if (paths == null) {
paths = Collections.emptyList();
}
}
public void rejectLegacyQueue() {
if (legacyQueue != null) {
throw new IllegalArgumentException(
"input.queue is no longer supported; configure top-level queue: instead.");
}
}
public void normalizeLegacyPath() {
if ((paths == null || paths.isEmpty()) && path != null && !path.trim().isEmpty()) {
paths = Collections.singletonList(path.trim());
}
}
public FileInputDefinition toFileInputDefinition() {
return FileInputDefinition.fromReader(this);
}
}
@Getter
@JsonIgnoreProperties(ignoreUnknown = true)
public static final class FileInputDefinition implements Serializable {View on GitHub (pinned to cf67b549a7)
Solutions
- Move the queue settings from input.queue to the top-level queue: key in the YAML config.
- Consult the current version's config template/docs for the new queue option names and defaults.
- Delete the obsolete input.queue block if the top-level queue is already configured.
- Search deployment scripts/config repos for 'input.queue' and update all environments.
Example fix
// before
input:
queue:
capacity: 1000
// after
queue:
capacity: 1000 Defensive patterns
Strategy: validation
Validate before calling
if (yaml.contains("input:")) { /* parse and reject input.queue before load */ } Try / catch
try { cfg = AgentYamlLoader.load(path); } catch (IllegalArgumentException e) { if (e.getMessage().contains("input.queue is no longer supported")) { migrateLegacyQueueConfig(path); cfg = AgentYamlLoader.load(path); } else { throw e; } } Prevention
- Migrate all configs to top-level queue: after upgrading.
- Grep config repositories for 'input.queue' in CI.
- Use the current version's config template as the base.
- Pin docs/examples to your agent version to avoid outdated snippets.
When it happens
Trigger: Starting the agent with a YAML config that still contains the legacy input.queue block; the check runs during config normalization on every load.
Common situations: Upgrading from an older agent version whose configs used input.queue; copying example configs from outdated documentation or blog posts; template files not migrated after the queue config was flattened to top level.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- input must be defined.
- input must be defined.
- Agent config is not a readable file: ${yamlPath}
- provided string configuration is null or empty! Please use a
- Invalid YAML configuration
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/aea1909029c0aab9.
Report an issue: GitHub.