provectus/kafka-ui · error · ValidationException
Input csv is not valid - blank value in colum
Error message
Input csv is not valid - blank value in colum
What it means
AclCsv.parseCsvLine trims each of the 7 CSV values and rejects any that are blank, throwing 'Input csv is not valid - blank value in colum <i>, line <n>'. Every ACL field (principal, resource type, pattern, resource name, operation, permission, host) must be non-empty.
Solutions
- Fill in the blank column (index given in the message) on the reported line
- Use '*' for wildcard values where Kafka allows it (e.g. host)
- Remove fully empty lines before parsing (blank lines are skipped, but rows with stray commas are not)
- Re-export the CSV ensuring no null/empty cells
Example fix
// before User:alice,TOPIC,LITERAL,my-topic,READ,ALLOW, // after User:alice,TOPIC,LITERAL,my-topic,READ,ALLOW,*
Defensive patterns
Strategy: validation
Validate before calling
// Java (caller)
String[] vals = line.split(",");
for (int i = 0; i < vals.length; i++) {
if (vals[i].trim().isBlank()) throw new IllegalArgumentException("Blank column " + i + " on ACL CSV line");
} Try / catch
try {
Collection<AclBinding> bindings = AclCsv.parseCsv(csv);
} catch (ValidationException e) {
if (e.getMessage().contains("blank value")) {
log.error("Fill blank ACL CSV field: {}", e.getMessage());
} else { throw e; }
} Prevention
- Never leave ACL cells empty; use '*' for wildcard host/principal where applicable
- Replace template placeholders before import
- Scan for double commas or trailing commas in exported files
- Validate all 7 cells are non-blank pre-upload
When it happens
Trigger: An ACL CSV line with an empty field after trimming — e.g. ',,LITERAL,...' or a trailing comma leaving the host column empty.
Common situations: Template files with unfilled placeholders; rows exported with optional empty columns; accidental double commas; whitespace-only values.
Understand the failure class
Background: "must not be empty", "cannot be empty" — required-field validation errors across open-source libraries — this error's family across 41 libraries.
Related errors
- Input csv is not valid - there should be 7 columns in line
- Error parsing ACL csv file: no lines in file
- Error parsing enum value in line
- seekTo should be set if seekType is
- ANY operation can be only part of filter
AI-assisted analysis of provectus/kafka-ui@83b5a60cc0 (2026-09-08).
Data as JSON: /api/errors/9927e5fb4ff2b33e.
Report an issue: GitHub.
Appendix: source
Thrown at kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/acl/AclCsv.java:50
"%s,%s,%s,%s,%s,%s,%s",
filter.principal(),
pattern.resourceType(),
pattern.patternType(),
pattern.name(),
filter.operation(),
filter.permissionType(),
filter.host()
);
}
private static AclBinding parseCsvLine(String csv, int line) {
String[] values = csv.split(VALUES_SEPARATOR);
if (values.length != 7) {
throw new ValidationException("Input csv is not valid - there should be 7 columns in line " + line);
}
for (int i = 0; i < values.length; i++) {
if ((values[i] = values[i].trim()).isBlank()) {
throw new ValidationException("Input csv is not valid - blank value in colum " + i + ", line " + line);
}
}
try {
return new AclBinding(
new ResourcePattern(
ResourceType.valueOf(values[1]), values[3], PatternType.valueOf(values[2])),
new AccessControlEntry(
values[0], values[6], AclOperation.valueOf(values[4]), AclPermissionType.valueOf(values[5]))
);
} catch (IllegalArgumentException enumParseError) {
throw new ValidationException("Error parsing enum value in line " + line);
}
}
public static Collection<AclBinding> parseCsv(String csvString) {
String[] lines = csvString.split(LINE_SEPARATOR);
if (lines.length == 0) {
throw new ValidationException("Error parsing ACL csv file: no lines in file");View on GitHub (pinned to 83b5a60cc0)