Skip to content

Regression: setting fish_color_user in fish_prompt causes the prompt to be re-drawn repeatedly forever #12233

@lgarron

Description

@lgarron

fish, version 4.3.1
macOS 26.1

This does not occur with sh -c 'env HOME=$(mktemp -d) XDG_CONFIG_HOME= XDG_DATA_DIRS= fish'

I have the following prompt config, which I've been using in more or less the same form for over a year (and without any real modifications for months). It worked just fine in fish 4.2.1.

https://github.com/lgarron/dotfiles/blob/23948cb93d9cc0091629a261f293afe2261266df/dotfiles/fish/.config/fish/functions/fish_prompt.fish

This is what it looks like in the built-in macOS Terminal.app — it results in the prompt getting stuck in a loop and refusing input:

Screen.Recording.2025-12-29.at.12.12.50.mov

In iTerm.app, this also causes prompt flickering.

If I change prompt.fish to a blank text file, I successfully get the default prompt.

If I change it to the following, then I get a > prompt as I would expect:

function fish_prompt
    echo "> "
end

However, even setting the prompt to this minimal example results in a terminal where I cannot input anything:

set -g _FISH_PROMPT_LCARS_HEADER_COLOR F19E4C

function fish_prompt
    set -l fish_color_user $_FISH_PROMPT_LCARS_HEADER_COLOR
end

The terminal looks like this no matter what I try to type:

Image

This also reproduces with cargo build --release on HEAD (fish, version 4.3.1-15-gb31387416d).

While trying to debug different reproductions, I've also run intermittently into the following:

  • Extreme input lag — perhaps on the order of a second per keystroke.
  • The following message:
warning: fish could not read response to Primary Device Attribute query after waiting for 2 seconds. This is often due to a missing feature in your terminal. See 'help terminal-compatibility' or 'man fish-terminal-compatibility'. This fish process will no longer wait for outstanding queries, which disables some optional features.

I'm going to attempt a bisect on master to see if I can identify anything.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions