Search always empty

I’m using atuin locally since a long time and I’m updating regurarely with mice. Since 1-2 weeks the interactive search shows no results:

There seems to be no history. But all non-interactive commands work: atuin history last, atuin stats, atuin search.

I’ve tried with a new config, a new history db, but nothing helps. Any ideas?

Atuin Doctor
Checking for diagnostics


Please include the output below with any bug reports or issues

{
  "atuin": {
    "version": "18.15.2",
    "commit": "1b4eb4901d256637c75849f0e4f82e476934b922",
    "sync": null,
    "sqlite_version": "3.46.0"
  },
  "shell": {
    "name": "bash",
    "default": "bash",
    "plugins": [
      "atuin",
      "bash-preexec"
    ],
    "preexec": "bash-preexec"
  },
  "system": {
    "os": "Fedora Linux",
    "arch": "x86_64",
    "version": "43",
    "disks": [
      {
        "name": "/dev/nvme0n1p4",
        "filesystem": "btrfs"
      },
      {
        "name": "/dev/nvme0n1p4",
        "filesystem": "btrfs"
      },
      {
        "name": "/dev/nvme0n1p3",
        "filesystem": "ext4"
      },
      {
        "name": "/dev/nvme0n1p1",
        "filesystem": "vfat"
      }
    ]
  }
}

Things you could try:

  • minimal .bashrc:
    # at the top (or remove):
    eval "$(atuin init hex)"
    
    # at the bottom:
    eval "$(atuin init bash --disable-ai)"
    
  • ble.sh instead of bash-preexec (or maybe a newer version)
  • another shell like zsh or fish just to check if the problem is shell config related

Thanks for your inputs!

The only thing which helped, was a downgrade to atuin 18.13.6 :sad_but_relieved_face:

I’m seeing the exact same thing - atuin search works, but any of the search modes shows empty. Tested on fish (my regular shell), bash (raw / no actual .bashrc) and zsh (also raw).

Did you make any progress except for a downgrade?

No. Did try a lot of things before, but gave up for now.

Are you using the daemon? Check your config file

search_mode = "daemon_fuzzy" will mean that you are, and in order for search to function the daemon must be running. Docs for the daemon: daemon - Atuin Documentation

Either way, I would recommend using it. Searches (and everything else) will be much faster

Yes, I’m using `search_mode = "daemon_fuzzy"` with daemon autostart.

what is the result of atuin daemon status?

Oh

atuin daemon status
Daemon is not running

and atuin daemon start hangs.

But I’m currently back on atuin 18.13.6 and search_mode = “fuzzy”

I’m sure that the deamon was running in atuin 18.15.2.

it would only have autostarted if you have

[daemon]
enabled = true
autostart = true

in your config

In the meantime I’ve tried updating from 18.13.6 a few times, but search was empty all the time. The only thing which gave some results was search_mode = "skim".

Now with 18.19.0 this workaround is gone. Current state with search_mode = "daemon-fuzzy" and daemon autostart:

$ atuin daemon status
Daemon running
PID:      10287
Version:  18.19.0
Protocol: 1
Healthy:  true
Socket:   /run/user/1000/atuin.sock

Search with Ctrl-R is still empty, but atuin search returns results.

One log entry looks suspicious though:

2026-08-04T20:09:29.579914Z INFO atuin_daemon::components::search: Loading history into search index; page size = 5000
2026-08-04T20:09:29.580116Z INFO atuin_daemon::components::sync: sync loop starting
2026-08-04T20:09:29.580182Z INFO atuin_daemon: config file watcher started
2026-08-04T20:09:29.580433Z INFO atuin_daemon::components::search: Frecency map built
2026-08-04T20:09:29.580524Z INFO atuin_daemon::components::sync: sync tick
2026-08-04T20:09:29.972238Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:30.310276Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:30.679108Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:30.956605Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:31.188645Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:31.383995Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:31.565206Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:31.732223Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:31.883683Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:32.015739Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:32.102161Z INFO atuin_daemon::components::search: Loading 5000 history entries into search index
2026-08-04T20:09:32.122840Z INFO atuin_daemon::components::search: Loading 1135 history entries into search index
2026-08-04T20:09:32.123522Z INFO atuin_daemon::components::search: History load complete; 0 unique commands indexed
2026-08-04T20:09:32.123550Z INFO atuin_daemon::components::search: Frecency map built

-> 0 unique commands indexed ?!

Do you also get zero results if you start with a filter that should give you a few results?
I suspect, you have some kind of invalid characters in your history.

Confirming the same issue on 18.19.0 (Raspberry Pi 4, aarch64, Raspberry Pi OS):

atuin history list and atuin search <query> return full results, but Ctrl-R/up-arrow interactive search is empty. Same daemon log pattern as reported above (Loading N history entries into search index followed by History load complete; 0 unique commands indexed).

Additional data point: switching search_mode from daemon_fuzzy to plain fuzzy does not fix it either on 18.19.0 - still zero results interactively, only non-interactive commands work. So this doesn’t look daemon-specific anymore; the indexing problem seems to affect the fuzzy engine generally, not just the daemon path.

Also tried downgrading to 18.13.6 as a workaround (per this thread) and hit a new issue:

Error: migration 20260709214605 was previously applied but is missing in the resolved migrations

18.13.6 refuses to start at all against a history.db that’s already been migrated forward by 18.19.0 - fails safe, no data touched, but it means the 18.13.6 workaround isn’t reachable anymore without restoring a pre-18.14ish backup of history.db. Might be worth a note in this thread that the downgrade path is closing off as people update forward.

I looked into the code and found the reason.

History entries from users with the same name as an agent are skipped when indexing:

My username is pi, the first two characters of my first name. The same as the default username on Raspberry Pis…

ahhh that would do it :upside_down_face: will get it fixed for the next release. sorry about that

Fixed in 18.20.0, thanks a lot!

thank you for confirming! I’d like to ensure we test properly on raspberry pis soon too