ハッシュに [] でアクセスすると無いキーは静かに nil を返しますが、fetch で無いキーを指定すると例外になります。「キーが無いことに気づかず処理を続けたくない」場面でわざと fetch を使うことも多いです。
出るコード
user = { name: "Aoi" }
user.fetch(:age) # :age キーは無い
エラーメッセージ
key not found: :age (KeyError)
直し方
fetch の第2引数にデフォルト値を渡すか、key? で存在確認してからアクセスします。
user.fetch(:age, 0) # 無ければ 0
user[:age] if user.key?(:age)