The posthog.insert_middlewares initializer in PostHog::Rails::Railtie calls insert_middleware_after without a receiver. Inside an initializer block, self is the Railtie instance, but insert_middleware_after is defined as a class method (def self.insert_middleware_after), causing a NoMethodError at boot time.
The same issue affects register_error_subscriber and rails_version_above_7? in the config.after_initialize block.
Steps to reproduce:
-
Add posthog-rails (3.5.1) to a Rails 8.1 app
-
Run rails generate posthog:install (or any command that boots the app)
~> rails generate posthog:install
/Users/johnnagro/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/posthog-rails-3.5.1/lib/posthog/rails/railtie.rb:79:in 'block in <class:Railtie>': undefined method 'insert_middleware_after' for an instance of PostHog::Rails::Railtie (NoMethodError)
insert_middleware_after(
^^^^^^^^^^^^^^^^^^^^^^^