# "Selecting deleted buffer" error

**URL:** <https://org-roam.discourse.group/t/selecting-deleted-buffer-error/3243>\
**Category:** Troubleshooting\
**Created:** [September 26, 2023, 11:18pm UTC](https://org-roam.discourse.group/t/selecting-deleted-buffer-error/3243 "2023-09-26T23:18:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![landermkerbey](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@landermkerbey](https://org-roam.discourse.group/u/landermkerbey)\
**Post date:** [September 26, 2023, 11:18pm UTC](https://org-roam.discourse.group/t/selecting-deleted-buffer-error/3243/1 "2023-09-26T23:18:16Z")

</div>

I just updated Emacs to version 29.1, and I am now getting the “Selecting deleted buffer” error described [here](https://org-roam.discourse.group/t/error-selecting-deleted-buffer-latest-emacs-build/2953) whenever I try to perform any sort of `org-roam` operation.

Having already been through the whole song-and-dance with native compilation and the assumptions Emacs makes about that when doing this update on another computer, I knew to set the following:

```auto
  (when (boundp 'native-comp-eln-load-path)
    (startup-redirect-eln-cache (expand-file-name "eln-cache/" user-emacs-directory)))

```

So, thankfully, all my packages are in a `straight/build` directory under my `user-emacs-directory` and every package except `org-roam` is working just fine. Trying to troubleshoot this, I have so far:

- Deleted `~/org-roam.db` and tried to regenerate it with `org-roam-db-sync`; this just spits the same “Selecting deleted buffer” error.
- `straight-rebuild-all`, which didn’t have any effect itself, and deleting the db, doing it and then running `org-roam-db-sync` also had no effect beyond creating an empty `~/org-roam.db` file.
- `straight-pull-all` + `straight-rebuild-all`, which also didn’t have any effect, same with doing all this after deleting the db and then trying `org-roam-db-sync` after.
- I checked `straight/build/emacsql-sqlite/sqlite`, this was already built and trying to run `make` just resulted in `'emacsql-sqlite' is up to date`. I saw one poster describe deleting this and manually rebuilding, which didn’t seem likely to make a difference to me, given that in the rebuild, this one had been rebuilt already. Tried it anyway, did nothing.
- I checked `straight/build/emacsql/sqlite`, this was NOT already built, so I ran `make`, which did end up building an `emacsql-sqlite` in that directory. Trying `org-roam-db-sync` after that . . . just gave me the same “Selecting deleted buffer” error.

Any attempt to perform any sort of `org-roam` function results in the same error. When I `toggle-debug-on-error` and try it, I get the following:

```auto

Debugger entered--Lisp error: (error "Selecting deleted buffer")
  #f(compiled-function (connection) "Return true if the end of the buffer has a properly-formatted prompt." #<bytecode 0x190c386fa67d1127>)(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230>)
  apply(#f(compiled-function (connection) "Return true if the end of the buffer has a properly-formatted prompt." #<bytecode 0x190c386fa67d1127>) #<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230> nil)
  emacsql-waiting-p(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230>)
  #f(compiled-function (connection &optional timeout) "Block until CONNECTION is waiting for further input." #<bytecode -0x1e50a56866d5f103>)(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230>)
  apply(#f(compiled-function (connection &optional timeout) "Block until CONNECTION is waiting for further input." #<bytecode -0x1e50a56866d5f103>) #<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230> nil)
  emacsql-wait(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230>)
  #f(compiled-function (connection sql &rest args) #<bytecode -0x98d4f8cd96763a4>)(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230> [:pragma (= foreign_keys ON)])
  apply(#f(compiled-function (connection sql &rest args) #<bytecode -0x98d4f8cd96763a4>) #<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230> [:pragma (= foreign_keys ON)])
  emacsql(#<emacsql-sqlite-connection emacsql-sqlite-connection-15873ddcb230> [:pragma (= foreign_keys ON)])
  org-roam-db()
  org-roam-db-sync(nil)
  funcall-interactively(org-roam-db-sync nil)
  call-interactively(org-roam-db-sync record nil)
  command-execute(org-roam-db-sync record)
  execute-extended-command(nil "org-roam-db-sync" nil)
  funcall-interactively(execute-extended-command nil "org-roam-db-sync" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

```

Below is my `org-roam` configuration as it stands; hopefully this helps somewhat.

```auto
(use-package org-roam
  :custom
  (setq org-roam-directory "~/sync_data/zettelkasten/"
	org-roam-db-location "~/org-roam.db"
	org-roam-file-exclude-regexp "org-roam/data"
	org-roam-node-display-template
	(concat "${title} " (propertize "${tags:*}" 'face 'org-tag)))
  (org-roam-db-autosync-mode)
  :bind
  (("C-c n f" . org-roam-node-find)
   ("C-c n i" . org-roam-node-insert)
   ("C-c n b" . org-roam-buffer-toggle)
   ("C-c n a" . org-roam-tag-add)
   ("C-c n d" . org-roam-tag-remove)
   ("C-c n r" . org-roam-refile))
  :config
  (setq org-roam-capture-templates
	'(("d" "default" plain "%?"
	   :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
			      "#+TITLE: ${title}\n")
	   :unnarrowed t)
	  ("C" "contact" plain "%?"
	   :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
			      "#+TITLE: ${title}\n#+filetags: :contacts:\n\n- Born:\n- Location:\n- Phone:\n- Email:\n\n* Biographical Information\n"))
   )
)

```

Other suggestions I have seen for how to address this issue are variations on the things I have tried already. Please let me know if there’s any other information I can provide that would be helpful.

EDIT:  
I observed that `org-roam` is still working perfectly on the other machine I set up Emacs 29.1 on, for some reason. The only difference I can discern right now is that `straight/build/` does NOT have an `emacs-sqlite` directory in it on that machine, just an `emacsql` directory. When I `C-h v` on `emacsql-sqlite-executable` on that machine, I get `/home/username/.config/emacsProfile/straight/build/emacsql/sqlite/emacsql-sqlite`. I compare that against the machine I’m having problems with, and it’s a similar path, but with the last segment being `emacsql-sqlite/sqlite/emacsql-sqlite` instead.

I deleted the higher-level `emacsql-sqlite` directory, which got me to a `No EmacSQL SQLite binary available` error.

Then I slipped `(setq emacsql-sqlite-executable "/home/username/.config/emacsProfile/straight/build/emacsql/sqlite/emacsql-sqlite")` before my `org-roam` config, but that just gets me right back to `Selecting deleted buffer`.

EDIT 2 ( **Problem Solved** )

Despite having restarted Emacs a few times during this process to no avail, doing it one more time seemed to shake things up, because the issue has disappeared. Not clear to me what difference there was between this restart and any of the others.
