There is a small bug when ale and the gruvbox theme (https://github.com/morhetz/gruvbox) are used together. Whenever ale flags a line as having an error, all of the text on the line becomes underlined. This underline persists even after the error is corrected. The underline appears after you switch buffers to a different file, then return to the one with the error. The only way to remove the underline is to close and re-open the buffer. Here is a picture of what happens:


The problem doesn't occur if I use a different theme. This problem was introduced in commit: ca120088c7206dfe8fc0a9e88a22470123cc574d I can't reproduce the problem in any commit previous to that one.
I have reproduced this problem using both ruby and golang linters. Here are the exact steps to reproduce.
1.) Create a syntax error in a file
2.) Switch to a different buffer
3.) Switch back to the buffer with the error, you should now see the underline
ALE Info:
Current Filetype: ruby
Available Linters: ['brakeman', 'reek', 'rubocop', 'ruby']
Enabled Linters: ['ruby']
Linter Variables:
Global Variables:
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%severity%: %s [%linter%]'
let g:ale_echo_msg_warning_str = 'Warn'
let g:ale_enabled = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'never'
let g:ale_linter_aliases = {}
let g:ale_linters = {'Haskell': [], 'AsciiDoc': [], 'HTML': [], 'YAML': [], 'TypeScript': [], 'CMake^I': [], 'nix^I': [], 'go': ['go build', 'golint', 'go vet'], 'OCaml^I': [], 'Lua^I': [], 'Erlang^I': [], 'SASS^I': [], 'ASM': [], 'MATLAB^I': [], 'SML^I': [], 'nroff^I': [], 'reStructuredText^I': [], 'CSS': [], 'PHP': [], 'Markdown': [], 'ruby': ['ruby'], 'Rust^I': [], 'C': [], 'Verilog': [], 'XHTML': [], 'Ansible': [], 'Elixir': [], 'JSON^I': [], 'Scala^I': [], 'Crystal^I': [], 'Chef^I': [], 'Kotlin^I': [], 'RPM': [], 'Slim^I': [], 'LaTeX^I': [], 'Bash': [], 'Java^I': [], 'Swift^I': [], 'Texinfo^I': [], 'Perl^I': [], 'C++': [], 'SQL^I': [], 'Ruby': [], 'C#^I': [], 'Pod^I': [], 'Erb^I': [], 'ReasonML': [], 'SCSS^I': [], 'Bourne Shell': [], 'Vim': [], 'Haml': [], 'CoffeeScript': [], 'Fortran^I': [], 'Dockerfile': [], 'D^I': [], 'Text^': [], 'Nim^I': [], 'Elm^I': [], 'Pug^I': [], 'JavaScript': [], 'Cython': [], 'Puppet^I': [], 'Handlebars': [], 'Python': []}
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_offset = 1000000
let g:ale_sign_warning = '--'
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_warn_about_trailing_whitespace = 1
Command History:
(finished - exit code 0) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/2/zone.rb''']
(finished - exit code 0) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/4/zone.rb''']
(finished - exit code 1) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/5/zone.rb''']
(finished - exit code 1) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/6/zone.rb''']
(finished - exit code 0) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/7/zone.rb''']
(finished - exit code 1) ['/bin/bash', '-c', 'ruby -w -c -T1 ''/var/folders/2q/qr4p6nx17bb22l0t86fzzk3r0000gn/T/vU64Iac/8/zone.rb''']
What is the output of :echo getmatches() when this occurs?
[{'group': 'ALEError', 'id': 8, 'priority': 10, 'pos1': [3]}]
If you have any idea what the problem might be, I can take a stab at making a pull request for it.
I'm also having this issue with a base-16 theme doing python linting (https://github.com/matthewgrossman/dotfiles/blob/master/vim/vimrc#L136). Let me know if you need additional debug details
I wonder if it has to do with 256bit color schemes?
I have the same problem with truecolor solarized theme.
I believe I have found the cause of this now. When buffers were being hidden and shown again, the items being restored for highlights included items with no columns. Because of that, it was highlighting entire lines. I have fixed that now. Let me know if that fixes your issues.
Its fixed for me! Thanks!
I have the same issue using the latest release and TSLint. A portion of the line gets red and underscored after fixing the error.
The output of :echo getmatches():
[{'group': 'ALEError', 'id': 2184, 'priority': 10, 'pos1': [122, 7, 8]}]
What do you see in the loclist or quickfix lists when you see that highlight? Are there are problems listed?
There's nothing in the loclist. But I found out that what gets highlighted is the exact position where the error was. Even if I edit the line or remove it completely, the same line:column stays highlighted.

Create an issue for this, and share :ALEInfo with g:ale_history_log_output set to 1, steps to repeat the bug, and an example file.
@akz92 Were you able to fix this, or did you create a new issue? I'm having the exact same problem.
@Lubits not that I can remember, haven't used TSLint in a year 馃槙