Open
Description
This bug was introduced in spring 4.3.0.
If the shell environment contains a non-ASCII value, e.g.
export HOMEBREW_INSTALL_BADGE=🍵
Then running a spring-enabled binstub like bin/rspec
crashes with an Encoding::CompatibilityError
error:
$ bin/rspec spec/example_spec.rb
gems/spring-4.3.0/lib/spring/json.rb:382:in 'String#[]=': incompatible character encodings: UTF-8 and BINARY (ASCII-8BIT) (Encoding::CompatibilityError)
from gems/spring-4.3.0/lib/spring/json.rb:382:in 'Spring::OkJson#unquote'
from gems/spring-4.3.0/lib/spring/json.rb:306:in 'Spring::OkJson#strtok'
from gems/spring-4.3.0/lib/spring/json.rb:272:in 'Spring::OkJson#tok'
from gems/spring-4.3.0/lib/spring/json.rb:235:in 'Spring::OkJson#lex'
from gems/spring-4.3.0/lib/spring/json.rb:66:in 'Spring::OkJson#decode'
from gems/spring-4.3.0/lib/spring/json.rb:16:in 'Spring::JSON.load'
from gems/spring-4.3.0/lib/spring/application.rb:185:in 'Spring::Application#serve'
from gems/spring-4.3.0/lib/spring/application.rb:158:in 'block in Spring::Application#run'
from <internal:kernel>:168:in 'Kernel#loop'
from gems/spring-4.3.0/lib/spring/application.rb:152:in 'Spring::Application#run'
from gems/spring-4.3.0/lib/spring/application/boot.rb:25:in '<top (required)>'
from <internal:rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
from <internal:rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
from -e:1:in '<main>'
Downgrading to spring 4.2.1 fixes the problem.
My setup:
- spring 4.3.0
- rails 7.2.2.1 (7-2-stable
27d728e3464c
) - ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin24]
Metadata
Metadata
Assignees
Labels
No labels