{"record":{"id":"36d3f4cdce6ab79e","repo":"puppetlabs/puppet","slug":"you-must-pass-a-callback-for-non-none-events","errorCode":null,"errorMessage":"You must pass a callback for non-NONE events","messagePattern":"You must pass a callback for non-NONE events","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/relationship.rb","lineNumber":31,"sourceCode":"\n  attr_accessor :source, :target, :callback\n\n  attr_reader :event\n\n  def self.from_data_hash(data)\n    source = data['source']\n    target = data['target']\n\n    args = {}\n    args[:event] = :\"#{data['event']}\" if data[\"event\"]\n    args[:callback] = :\"#{data['callback']}\" if data[\"callback\"]\n\n    new(source, target, args)\n  end\n\n  def event=(event)\n    # TRANSLATORS 'NONE' should not be translated\n    raise ArgumentError, _(\"You must pass a callback for non-NONE events\") if event != :NONE and !callback\n\n    @event = event\n  end\n\n  def initialize(source, target, options = {})\n    @source = source\n    @target = target\n\n    options = (options || {}).each_with_object({}) { |a, h| h[a[0].to_sym] = a[1]; }\n    [:callback, :event].each do |option|\n      value = options[option]\n      send(option.to_s + \"=\", value) if value\n    end\n  end\n\n  # Does the passed event match our event?  This is where the meaning\n  # of :NONE comes from.\n  def match?(event)","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/relationship.rb#L13-L49","documentation":"Error \"You must pass a callback for non-NONE events\" thrown in puppetlabs/puppet.","triggerScenarios":"Thrown at lib/puppet/relationship.rb:31 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}