Skip to content

NoMethodError: undefined method 'insert_middleware_after' in Railtie initializer #97

@johnnagro

Description

@johnnagro

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:

  1. Add posthog-rails (3.5.1) to a Rails 8.1 app

  2. 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(
        ^^^^^^^^^^^^^^^^^^^^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions