fetlife/rollout · error · ArgumentError

Invalid log event: #{event}

Error message

Invalid log event: #{event}

What it means

Error "Invalid log event: #{event}" thrown in fetlife/rollout.

Source

Thrown at lib/rollout/logging.rb:142

          created_at: Time.now,
        )

        storage_key = events_storage_key(after.name)

        @storage.zadd(storage_key, -event.timestamp, event.serialize)
        @storage.zremrangebyrank(storage_key, @history_length, -1)

        if @global
          @storage.zadd(global_events_storage_key, -event.timestamp, event.serialize)
          @storage.zremrangebyrank(global_events_storage_key, @history_length, -1)
        end
      end

      def log(event, *args)
        return unless logging_enabled?

        unless respond_to?(event)
          raise ArgumentError, "Invalid log event: #{event}"
        end

        expected_arity = method(event).arity
        unless args.count == expected_arity
          raise(
            ArgumentError,
            "Invalid number of arguments for event '#{event}': expected #{expected_arity} but got #{args.count}",
          )
        end

        public_send(event, *args)
      end

      CONTEXT_THREAD_KEY = :rollout_logging_context
      WITHOUT_THREAD_KEY = :rollout_logging_disabled

      def with_context(context)
        raise ArgumentError, "context must be a Hash" unless context.is_a?(Hash)

View on GitHub (pinned to bd318a9488)

Solutions

  1. Pass an event name that is a public method of the logging module, such as :activate, :deactivate, or :update.
  2. Call log with a symbol matching a defined event, e.g. log(:activate, feature).
  3. Check the event symbol for typos against the event methods defined in lib/rollout/logging.rb before calling log.

Example fix

log(:activate, feature) # not log(:activte, feature)

When it happens

Trigger: Thrown at lib/rollout/logging.rb:142 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fetlife/rollout@bd318a9488 (2026-08-23). Data as JSON: /api/errors/5e159b66143cf44f. Report an issue: GitHub.