{"record":{"id":"2661201b8927a147","repo":"apache/seatunnel","slug":"set-time-characteristic-failed-unknown-time-chara","errorCode":null,"errorMessage":"set time-characteristic failed, unknown time-characteristic [{}],only support event-time,ingestion-time,processing-time","messagePattern":"set time-characteristic failed, unknown time-characteristic \\[(.+?)\\],only support event-time,ingestion-time,processing-time","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-core/seatunnel-flink-starter/seatunnel-flink-starter-common/src/main/java/org/apache/seatunnel/core/starter/flink/execution/AbstractFlinkRuntimeEnvironment.java","lineNumber":246,"sourceCode":"        }\n        return OptionalLong.empty();\n    }\n\n    private void setTimeCharacteristic() {\n        if (EnvironmentUtil.hasPathAndWaring(config, ConfigKeyName.TIME_CHARACTERISTIC)) {\n            String timeType = config.getString(ConfigKeyName.TIME_CHARACTERISTIC);\n            switch (timeType.toLowerCase()) {\n                case \"event-time\":\n                    environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);\n                    break;\n                case \"ingestion-time\":\n                    environment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);\n                    break;\n                case \"processing-time\":\n                    environment.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);\n                    break;\n                default:\n                    LOGGER.warn(\n                            \"set time-characteristic failed, unknown time-characteristic [{}],only support event-time,ingestion-time,processing-time\",\n                            timeType);\n                    break;\n            }\n        }\n    }\n\n    public boolean isStreaming() {\n        return JobMode.STREAMING.equals(jobMode);\n    }\n\n    public String getJobName() {\n        return jobName;\n    }\n\n    @Override\n    public JobMode getJobMode() {\n        return jobMode;","sourceCodeStart":228,"sourceCodeEnd":264,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-core/seatunnel-flink-starter/seatunnel-flink-starter-common/src/main/java/org/apache/seatunnel/core/starter/flink/execution/AbstractFlinkRuntimeEnvironment.java#L228-L264","documentation":"Emitted by AbstractFlinkRuntimeEnvironment.setTimeCharacteristic when the 'time-characteristic' env option is not one of 'event-time', 'ingestion-time', or 'processing-time'. The starter logs a warning and skips the setting, so the Flink DataStream's default time characteristic remains in effect. It is a soft config-validation failure, not a job abort.","triggerScenarios":"env block contains 'time-characteristic' with an unrecognized string (case-sensitive, hyphenated), e.g. 'EventTime', 'event_time', or 'watermark'; passed via createStreamEnvironment -> setTimeCharacteristic.","commonSituations":"Typos like 'event_time' from underscore-style configs; values copied from Flink's TimeCharacteristic enum names (EventTime/IngestionTime/ProcessingTime); stale configs referencing removed options.","solutions":["Set time-characteristic to exactly one of 'event-time', 'ingestion-time', or 'processing-time'.","Remove the key to keep Flink's default time characteristic.","Verify in the job log that no 'set time-characteristic failed' warning appears."],"exampleFix":"// before\nenv {\n  time-characteristic = EventTime\n}\n// after\nenv {\n  time-characteristic = \"event-time\"\n}","handlingStrategy":"validation","validationCode":"String t = config.getString(\"time-characteristic\");\nif (!java.util.Arrays.asList(\"event-time\",\"ingestion-time\",\"processing-time\").contains(t)) {\n    throw new IllegalArgumentException(\"time-characteristic must be event-time, ingestion-time, or processing-time\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use the documented hyphenated lowercase spellings.","Validate env blocks with a schema/linter in CI.","Re-check logs after Flink version upgrades."],"tags":["flink","config","time-semantics"],"backgroundTag":"invalid-enum-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}