{"record":{"id":"5f50c98968083879","repo":"apache/seatunnel","slug":"option-must-not-be-blank","errorCode":null,"errorMessage":"${option} must not be blank","messagePattern":"(.+?) must not be blank","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-deeplake/src/main/java/org/apache/seatunnel/connectors/seatunnel/deeplake/config/DeepLakeSinkConfig.java","lineNumber":78,"sourceCode":"            throw new IllegalArgumentException(\n                    \"schema_save_mode RECREATE_SCHEMA is not supported by the DeepLake sink\");\n        }\n    }\n\n    private static String removeTrailingSlash(String value) {\n        if (value == null) {\n            return null;\n        }\n        int end = value.length();\n        while (end > 0 && value.charAt(end - 1) == '/') {\n            end--;\n        }\n        return value.substring(0, end);\n    }\n\n    private static void requireNonBlank(String value, String option) {\n        if (value == null || value.trim().isEmpty()) {\n            throw new IllegalArgumentException(option + \" must not be blank\");\n        }\n    }\n\n    private static void requirePositive(int value, String option) {\n        if (value <= 0) {\n            throw new IllegalArgumentException(option + \" must be greater than zero\");\n        }\n    }\n\n    public String getApiUrl() {\n        return apiUrl;\n    }\n\n    public String getApiKey() {\n        return apiKey;\n    }\n\n    public String getOrgId() {","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-deeplake/src/main/java/org/apache/seatunnel/connectors/seatunnel/deeplake/config/DeepLakeSinkConfig.java#L60-L96","documentation":"DeepLakeSinkConfig.requireNonBlank validates required string options (workspace, table, api_url, etc.) and throws IllegalArgumentException('<option> must not be blank') when the value is null, empty, or whitespace-only. It fails fast at config construction so the job never starts with an unusable Deep Lake endpoint/table path.","triggerScenarios":"Omitting a required string option in the Deep Lake sink config, or providing it as \"\" or whitespace (e.g. env-var interpolation resolving to an empty string).","commonSituations":"Missing workspace/table keys in HOCON config; ${WORKSPACE} env vars unset so interpolation yields an empty string; quoting mistakes producing empty values.","solutions":["Set the reported option (named at the start of the message) to a non-blank value","Check that referenced environment variables are exported in the submit environment","Trim surrounding whitespace from config values"],"exampleFix":"// before\nworkspace = ${DEEPLAKE_WORKSPACE} // env var unset -> blank\n// after\nworkspace = \"my-workspace\" // or export DEEPLAKE_WORKSPACE before submit","handlingStrategy":"validation","validationCode":"for (String k : java.util.List.of(\"workspace\",\"table\",\"api_url\")) {\n  String v = config.getString(k, null);\n  if (v == null || v.trim().isEmpty()) throw new IllegalStateException(k + \" must not be blank\");\n}","typeGuard":null,"tryCatchPattern":"try { new DeepLakeSinkConfig(options); } catch (IllegalArgumentException e) { if (e.getMessage().endsWith(\"must not be blank\")) log.error(\"Missing DeepLake option: {}\", e.getMessage()); throw e; }","preventionTips":["Verify all required sink keys exist in the HOCON config before submit","Check that interpolated env vars are exported on the submit machine","Trim values and avoid accidental empty strings in templates"],"tags":["deeplake","config","validation"],"backgroundTag":"missing-required-config-field","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}