Serghei Iakovlev <li...@serghei.pl> writes:

> I encountered an issue with `org-mode' in my Emacs configuration
> related to periodic clearing of the refile cache during idle time.  I
> am using the following code snippet, which runs during idle time to
> clear the cache of refile targets:
>
> --8<---------------cut here---------------start------------->8---
> (run-with-idle-timer 600 t (lambda ()
>                              (require 'org-refile)
>                              (org-refile-cache-clear)
>                              (org-refile-get-targets)))
> --8<---------------cut here---------------end--------------->8---
> ...
> --8<---------------cut here---------------start------------->8---
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>   looking-at(nil)
>   org-refile-get-targets()
> ...
>  org-refile-targets '((nil :maxlevel . 4) (my-org-opened-buffer-files 
> :maxlevel . 4)
>                       (org-agenda-files :maxlevel . 4))

You are running `org-refile-get-targets' using idle timer.
It means that it may be called in any buffer.

At the same time, you have (nil :maxlevel .4) in your
`org-refile-targets', instructing Org mode to examine current buffer for
refile targets.

Since you are on 9.6.15, Org mode should actually barf if
`org-refile-targets' is called in non-Org buffer.
So, I am a bit puzzled why you are running into errors that seemingly
originate from deeper into `org-refile-get-targets' logic (there is a
single `looking-at' call in `org-refile-get-targets' and it is after
checking major mode).

My only guess is that some of your Org buffers is not properly
initialized somehow. Maybe the timer is triggering in the middle of Org
mode loading or something?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to