{"record":{"id":"5e159b66143cf44f","repo":"fetlife/rollout","slug":"invalid-log-event-event","errorCode":null,"errorMessage":"Invalid log event: #{event}","messagePattern":"Invalid log event: #(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/rollout/logging.rb","lineNumber":142,"sourceCode":"          created_at: Time.now,\n        )\n\n        storage_key = events_storage_key(after.name)\n\n        @storage.zadd(storage_key, -event.timestamp, event.serialize)\n        @storage.zremrangebyrank(storage_key, @history_length, -1)\n\n        if @global\n          @storage.zadd(global_events_storage_key, -event.timestamp, event.serialize)\n          @storage.zremrangebyrank(global_events_storage_key, @history_length, -1)\n        end\n      end\n\n      def log(event, *args)\n        return unless logging_enabled?\n\n        unless respond_to?(event)\n          raise ArgumentError, \"Invalid log event: #{event}\"\n        end\n\n        expected_arity = method(event).arity\n        unless args.count == expected_arity\n          raise(\n            ArgumentError,\n            \"Invalid number of arguments for event '#{event}': expected #{expected_arity} but got #{args.count}\",\n          )\n        end\n\n        public_send(event, *args)\n      end\n\n      CONTEXT_THREAD_KEY = :rollout_logging_context\n      WITHOUT_THREAD_KEY = :rollout_logging_disabled\n\n      def with_context(context)\n        raise ArgumentError, \"context must be a Hash\" unless context.is_a?(Hash)","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/fetlife/rollout/blob/bd318a94887aab2bda25f89d44825a42a573ff34/lib/rollout/logging.rb#L124-L160","documentation":"Error \"Invalid log event: #{event}\" thrown in fetlife/rollout.","triggerScenarios":"Thrown at lib/rollout/logging.rb:142 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass an event name that is a public method of the logging module, such as :activate, :deactivate, or :update.","Call log with a symbol matching a defined event, e.g. log(:activate, feature).","Check the event symbol for typos against the event methods defined in lib/rollout/logging.rb before calling log."],"exampleFix":"log(:activate, feature) # not log(:activte, feature)","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bd318a94887aab2bda25f89d44825a42a573ff34","analyzedAt":"2026-08-23T16:22:44.185Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}