Hi Eli. I inserted a print function into magit-post-command-hook: (defadvice! cae-magit-section-post-command-hook-a (oldfun) :around #’magit-section-post-command-hook (condition-case e (funcall oldfun) (error (+log “magit-post-command-hook error:” (current-buffer) (selected-window) (buffer-narrowed-p) (point-min) (point-max) (buffer-size))))) and it outputted this: Values: magit-post-command-hook error:, magit: emacs, #, nil, 1, 20993, 20992 Eli Zaretskii So basically, the situation is that the (current-buffer) is magit: emacs whereas the window is on \*Messages\* and so when we call (get-pos-property pos ’cursor-intangible), it uses a point value from magit: emacs on the messages buffer. Why exactly are the window-buffer and the current-buffer different? I think this has to do with persp-mode. My guess is that when it sets the new window configuration, the current-buffer is not updated to the new window’s buffer immediately. Sincerely, StrawberryTea writes: >> From: StrawberryTea >> Date: Sun, 18 Feb 2024 15:08:20 -0600 >> >> Hi. So I noticed that sometimes magit-section-post-command-hook was giving an >> ars-out-of-range error and I have narrowed it down to a C function in Emacs: >> >> Debugger entered–Lisp error: (args-out-of-range 9482 9482) >> cursor-sensor–intangible-p(9483) >> cursor-sensor-tangible-pos(9483 #) >> cursor-sensor-move-to-tangible(#) >> #() >> apply(# nil) >> (condition-case err (apply func args) ((debug error) (signal (car err) (cdr err)))) >> cae-debug-reraise-error(#) >> apply(cae-debug-reraise-error # nil) >> magit-section-post-command-hook() >> >> Within cursor-sensor–intangible-p, (get-pos-property 9483 ’cursor-intangible) >> is giving that error in the Magit buffer even though that 9483 number is less >> than (point-max). > > Can you show a recipe to reproduce this, preferably without using > Magit? > > I suspect some code narrows the buffer while this code runs, which is > why the error is signaled.