Unfortunately, shotgun requires that the current environment supports fork(2).
JRuby and Windows don’t support it.
If this is your case, shotgun is not compatible with your development environment, then you can remove that entry from the Gemfile or start the server with the --no-code-reloading argument.

Other Environments

Hanami doesn’t implement code reloading in its core.

The framework doesn’t know about this feature, it just uses Ruby to load the code and execute it. It’s shotgun that makes code reloading possible, by wrapping Hanami projects’ code.

Because shotgun is only enabled in development, all the other environments don’t have this code reloading feature.
By excluding this feature from the core of the framework, we make sure that Hanami projects don’t mess with Ruby’s code loading mechanisms in production.

In other words, once the code is loaded in production, it isn’t changed anymore.