As agreed on the Spark users mailing list in the thread "[SS] Console sink not supporting recovering from checkpoint location? Why?" in which marmbrus said:
I think there is really no good reason for this limitation.
Using ConsoleSink should therefore not fail a streaming query when used with checkpointLocation option.
res8: String = 2.3.0-SNAPSHOT
scala> val q = records.
| option("truncate", false).
| option("checkpointLocation", "/tmp/checkpoint"). checkpoint directory
org.apache.spark.sql.AnalysisException: This query does not support recovering from checkpoint location. Delete /tmp/checkpoint/offsets to start over.;
... 61 elided
The "trigger" is
SPARK-16116 and this line in particular.
This also relates to
SPARK-19768 that was resolved as not a bug.