Function: gptel--handle-error
gptel--handle-error is a natively compiled function defined in
gptel.el.
Signature
(gptel--handle-error FSM)
Documentation
Check for errors in request state FSM.
Perform UI updates and run post-response hooks.
Source Code
;; Defined in /nix/store/q3r7g81pvghw7a523kjk2k2zih3pfk8z-emacs-packages-deps/share/emacs/site-lisp/elpa/gptel-20261002.545/gptel.el
(defun gptel--handle-error (fsm)
"Check for errors in request state FSM.
Perform UI updates and run post-response hooks."
(when-let* ((info (gptel-fsm-info fsm))
(error-data (plist-get info :error)))
(let* ((status (plist-get info :status))
(gptel-buffer (plist-get info :buffer))
(start-marker (plist-get info :position))
(tracking-marker (or (plist-get info :tracking-marker)
start-marker))
(backend-name
(gptel-backend-name
(buffer-local-value 'gptel-backend gptel-buffer))))
(if (stringp error-data)
(message "%s error: (%s) %s" backend-name status (string-trim error-data))
(when-let* ((error-type (plist-get error-data :type)))
(setq status (concat "(" status ") "
(string-trim (gptel--to-string error-type)))))
(when-let* ((error-msg (plist-get error-data :message)))
(message "%s error: (%s) %s" backend-name status
(string-trim (gptel--to-string error-msg)))))
(if-let* ((gptel-window (get-buffer-window gptel-buffer 'visible)))
(with-selected-window gptel-window
(mapc (lambda (f) (funcall f info)) (plist-get info :post))
(run-hook-with-args
'gptel-post-response-functions
(marker-position start-marker) (marker-position tracking-marker)))
(with-current-buffer gptel-buffer
(mapc (lambda (f) (funcall f info)) (plist-get info :post))
(run-hook-with-args
'gptel-post-response-functions
(marker-position start-marker) (marker-position tracking-marker))))
(with-current-buffer gptel-buffer
(when gptel-mode
(gptel--update-status (format " Error: %s" status) 'error)
(gptel--update-token-usage (plist-get info :tokens)
(plist-get info :tokens-full)))))))