freezeされた(凍結された)オブジェクトを変更しようとすると発生するエラーです。frozen_string_literalマジックコメントが原因のことも多いです。
name = "taro".freeze
name << "!" # freeze済みの文字列は変更できない
puts name
name = "taro".freeze
new_name = name + "!" # 新しい文字列を作る
puts new_name
# 変更可能なコピーが必要なら dup
copy = name.dup
copy << "!"
puts copy
▶ 修正済みコードを実行エディタで開く
freezeされたオブジェクトは破壊的メソッド(<<・gsub!・upcase!など)で変更できません。新しいオブジェクトを作る(+やgsubなど!なしのメソッド)か、dupで変更可能なコピーを作って操作します。ファイル先頭に# frozen_string_literal: trueがあると、そのファイルの文字列リテラルはすべてfreeze状態になります。