Skip to content

app:update diff on 404.html gives Encoding::UndefinedConversionError #54733

@troelskn

Description

@troelskn

Steps to reproduce

I was upgrading my app from 7.1.1 to 8.0.1 and ran the task app:update. When it wanted to replace the 404.html page, I selected option d (diff) and the task failed and exited.

# bin/rails app:update
(...)
    conflict  public/404.html
Overwrite /app/public/404.html? (enter "h" for help) [Ynaqdhm] d
/usr/local/lib/ruby/3.4.0/delegate.rb:349:in 'IO#write': "\xE2" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
	from /usr/local/lib/ruby/3.4.0/delegate.rb:349:in 'block in delegating_block'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/shell/basic.rb:318:in 'block in Thor::Shell::Basic#show_diff'
	from /usr/local/lib/ruby/3.4.0/tempfile.rb:444:in 'Tempfile.open'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/shell/basic.rb:317:in 'Thor::Shell::Basic#show_diff'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/shell/lcs_diff.rb:15:in 'LCSDiff#show_diff'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/shell/basic.rb:231:in 'block in Thor::Shell::Basic#file_collision'
	from <internal:kernel>:168:in 'Kernel#loop'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/shell/basic.rb:211:in 'Thor::Shell::Basic#file_collision'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/create_file.rb:101:in 'Thor::Actions::CreateFile#force_on_collision?'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/create_file.rb:94:in 'Thor::Actions::CreateFile#force_or_skip_or_conflict'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/create_file.rb:78:in 'Thor::Actions::CreateFile#on_conflict_behavior'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/empty_directory.rb:115:in 'Thor::Actions::EmptyDirectory#invoke_with_conflict_check'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/create_file.rb:61:in 'Thor::Actions::CreateFile#invoke!'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions.rb:93:in 'Thor::Actions#action'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/create_file.rb:25:in 'Thor::Actions#create_file'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/file_manipulation.rb:25:in 'Thor::Actions#copy_file'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/directory.rb:94:in 'block in Thor::Actions::Directory#execute!'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/directory.rb:80:in 'Array#each'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/directory.rb:80:in 'Thor::Actions::Directory#execute!'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/directory.rb:66:in 'Thor::Actions::Directory#invoke!'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions.rb:93:in 'Thor::Actions#action'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/actions/directory.rb:52:in 'Thor::Actions#directory'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/generators/rails/app/app_generator.rb:20:in 'Rails::ActionMethods#directory'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/generators/rails/app/app_generator.rb:223:in 'Rails::AppBuilder#public_directory'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/generators/app_base.rb:171:in 'Kernel#public_send'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/generators/app_base.rb:171:in 'Rails::Generators::AppBase#build'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/generators/rails/app/app_generator.rb:437:in 'Rails::Generators::AppGenerator#create_public_files'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/commands/app/update_command.rb:38:in 'Rails::Command::App::UpdateCommand#public_directory'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/commands/app/update_command.rb:20:in 'Rails::Command::App::UpdateCommand#perform'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/command.rb:28:in 'Thor::Command#run'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor/invocation.rb:127:in 'Thor::Invocation#invoke_command'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/command/base.rb:178:in 'Rails::Command::Base#invoke_command'
	from /usr/local/bundle/gems/thor-1.3.2/lib/thor.rb:538:in 'Thor.dispatch'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/command/base.rb:73:in 'Rails::Command::Base.perform'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/command.rb:65:in 'block in Rails::Command.invoke'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/command.rb:143:in 'Rails::Command.with_argv'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/command.rb:63:in 'Rails::Command.invoke'
	from /usr/local/bundle/gems/railties-8.0.1/lib/rails/commands.rb:18:in '<main>'
	from <internal:/usr/local/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
	from <internal:/usr/local/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
	from /usr/local/bundle/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
	from bin/rails:4:in '<main>'

System configuration

Rails version: 8.0.1

Ruby version: 3.4.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions