STREAMING_QUERY_EVOLUTION_ERROR error condition
Streaming query evolution error:
DUPLICATE_SOURCE_NAMES
Duplicate streaming source names detected: <duplicateNames>. Each streaming source must have a unique name. Please ensure all sources have distinct names using the name() method.
INVALID_SINK_NAME
Invalid streaming sink name: '<sinkName>'. Sink names must only contain ASCII letters ('a'-'z', 'A'-'Z'), digits ('0'-'9'), and underscores ('_').
INVALID_SOURCE_NAME
Invalid streaming source name: '<sourceName>'. Source names must only contain ASCII letters ('a'-'z', 'A'-'Z'), digits ('0'-'9'), and underscores ('_'). Use backticks to quote names with special characters if needed.
NAMED_SOURCES_REQUIRE_ENFORCEMENT
Cannot use the name() method to name streaming sources when spark.sql.streaming.queryEvolution.enableSourceEvolution is disabled. Please enable source evolution by setting spark.sql.streaming.queryEvolution.enableSourceEvolution to true, or remove the name() call.
NAMED_SOURCES_REQUIRE_OFFSET_LOG_V2
Named streaming sources enforcement requires offset log format V2 (OffsetMap), but found V<version>. V2 format uses sourceId:offset pairs which support source evolution. Set spark.sql.streaming.offsetLog.version to 2, or disable named sources enforcement by setting spark.sql.streaming.queryEvolution.enableSourceEvolution to false
SINK_ID_REUSED
Cannot reuse sink name '<sinkId>' at checkpoint location <checkpointLocation>. This sink name was previously used and then replaced with a different sink. Reusing inactive sink names can lead to data correctness issues. To use a new sink, assign it a different name using the name() method on DataStreamWriter (for example, .name("my_new_sink")).
SINK_PROVIDER_MISMATCH
Cannot change sink provider for sink '<sinkId>' at checkpoint location <checkpointLocation>. The sink was previously using provider '<previousProvider>' but is now using '<currentProvider>'. Changing the sink type while keeping the same sink name can lead to data correctness issues. To use the new sink type, assign it a different name using the name() method on DataStreamWriter (for example, .name("my_new_sink")).
TOMBSTONE_SOURCE_NAME_REUSE
Cannot reuse tombstoned source names: <sourceNames>. These source names were previously used and then removed from the streaming query at checkpoint location <checkpointLocation>. Reusing tombstoned source names can lead to data correctness issues. Please use different source names.
UNNAMED_STREAMING_SINKS_WITH_ENFORCEMENT
Streaming sink must be named when spark.sql.streaming.queryEvolution.enableSinkEvolution is enabled. Use the name() method on DataStreamWriter to assign a name to the streaming sink.
UNNAMED_STREAMING_SOURCES_WITH_ENFORCEMENT
All streaming sources must be named when spark.sql.streaming.queryEvolution.enableSourceEvolution is enabled. Unnamed sources found: <sourceInfo>. Use the name() method to assign names to all streaming sources.