I've recently started facing some issues where all org files refuse to
load with the error message:
```
Debugger entered--Lisp error: (wrong-number-of-arguments #<subr
org-persist--find-index> 2)
```
I think the culprit is the use of cl-set-difference with
org-persist--find-index as the :test function.
Since the :test function (like `equal`) is expected to take two
objects to compare and the org-persist--find-index takes a single
argument
Usually when `(org-file-newer-than-p index-file
org-persist--index-age)` is nil the merge process is not triggered and
things work well. But if that is not the case the merge function which
internally calls cl-set-difference fails.
This change seems to be recently introduced in 4ec1087 on May 3rd, 2025.
Below is a slightly truncated stack trace with the problem for reference:
Debugger entered--Lisp error: (wrong-number-of-arguments #<subr
org-persist--find-index> 2)
org-persist--find-index((:container ((elisp
org-element--headline-cache) (elisp org-element--cache) (version
"2.3")) :persist-file "5b/d55ed1-5fc6-4c2b-b8d1-1e1304c31d6c"
:associated (:hash "bb3c382e6416906a58dc46c0cb0195e3" :file
"<truncated_file_path.org>" :inode 44140230) :expiry 30 :last-access
1750758041.756506 :last-access-hr "2025-06-24T15:10:41+0530")
(:container ((elisp org-element--headline-cache) (elisp
org-element--cache) (version "2.3")) :persist-file
"2c/607334-0dd4-4ab2-9ace-91e170323826" :associated (:hash
"29bf71fc6b5b1e3f110228522eec69a4" :file "<truncated_file_2_path.org>"
:inode 67197588) :expiry 30 :last-access 1751084016.835267
:last-access-hr "2025-06-28T09:43:36+0530"))
cl-member(...)
cl-set-difference((... ... ... ... ... ... ... ... ... ... ... ...
... ... ...) (... ... ... ... ... ... ... ... ... ... ... ... ... ...
...) :test org-persist--find-index)
org-persist--merge-index((... ... ... ... ... ... ... ... ... ...
... ... ... ... ...) (... ... ... ... ... ... ... ... ... ... ... ...
... ... ...))
org-persist--merge-index-with-disk()
org-persist-register(((elisp org-element--cache) (version "2.3"))
#<buffer test.org>)
org-element-cache-reset()
org-mode()
#<subr set-auto-mode-0>(org-mode nil)
apply(#<subr set-auto-mode-0> (org-mode nil))
set-auto-mode-0(org-mode nil)
set-auto-mode--apply-alist(... nil nil)
#<subr set-auto-mode>()
so-long--set-auto-mode(#<subr set-auto-mode>)
apply(so-long--set-auto-mode #<subr set-auto-mode> nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer test.org>
"<truncated_file_3_path.org>" nil nil "<truncated_file_3_path.org>"
(64374425 16777231))
find-file-noselect("<truncated_file_3_path.org>" nil nil t)
find-file("<truncated_file_3_path.org>" t)
funcall-interactively(find-file "<truncated_file_3_path.org>" t)
command-execute(find-file)
--
Regards,
Umar Ahmad