I was updating my app yu7 URL shortener a while back when this error appeared no implicit conversion of nil into String (SSHKit::Runner::ExecuteError). Things seemed to work well on Ruby 3.2.2, but it broke loose on 3.3.5.

On investigation, I found out that it was caused by gem net-ssh https://github.com/capistrano/capistrano/issues/2146#issuecomment-1856140815. The latest fixed version is available in capistrano 3.1.7.

So in my Gemfile I changed to this one

gem "capistrano", "~> 3.17", require: false

And cap production deploy worked like a charm.