Indeed, the following patch seems to fix the issue for me, though I
don't know enough about the code to know if this is
clean/elegant/general enough:
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 631c6d0..c53c8c8 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -6989,9 +6989,9 @@ or \"timestamp_ia\", compare within each of these type.
When TYPE is the empty string, compare all timestamps
without respect of their type."
(let* ((def (if org-sort-agenda-notime-is-late 9901 -1))
- (ta (or (and (string-match type (get-text-property 1 'type a))
+ (ta (or (and (string-match type (or (get-text-property 1 'type a) ""))
(get-text-property 1 'ts-date a)) def))
- (tb (or (and (string-match type (get-text-property 1 'type b))
+ (tb (or (and (string-match type (or (get-text-property 1 'type b) ""))
(get-text-property 1 'ts-date b)) def)))
(cond ((< ta tb) -1)
((< tb ta) +1))))
--
Best,
Richard