{"record":{"id":"4eabc38e0b0896c5","repo":"theforeman/foreman","slug":"proxy-reference-should-be-relation-column","errorCode":null,"errorMessage":"Proxy reference should be { :relation => [:column_name, ...] }","messagePattern":"Proxy reference should be (.+?)","errorType":"exception","errorClass":"Foreman::Exception","httpStatus":null,"severity":"error","filePath":"app/services/proxy_reference_registry.rb","lineNumber":19,"sourceCode":"module ProxyReferenceRegistry\n  class << self\n    attr_accessor :references\n\n    def add_smart_proxy_reference(hash)\n      ref = new_reference hash\n      if @references\n        join_reference_arrays @references, [ref]\n      else\n        @references = [ref]\n      end\n    end\n\n    def find_by_relation(relation)\n      smart_proxy_references.find { |ref| ref.join_relation == relation }\n    end\n\n    def new_reference(hash)\n      raise Foreman::Exception.new(N_(\"Proxy reference should be { :relation => [:column_name, ...] }\")) unless correct_reference_format?(hash)\n      SmartProxyReference.new hash.deep_clone\n    end\n\n    def smart_proxy_references\n      join_reference_arrays local_proxy_references.deep_clone, proxy_references_from_plugins\n    end\n\n    def local_proxy_references\n      @references ||= []\n    end\n\n    def proxy_references_from_plugins\n      Foreman::Plugin.all.map(&:smart_proxy_references).reject(&:empty?).reduce([]) do |memo, plugin_refs|\n        join_reference_arrays memo, plugin_refs\n      end\n    end\n\n    def join_reference_arrays(references, other_references)","sourceCodeStart":1,"sourceCodeEnd":37,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/services/proxy_reference_registry.rb#L1-L37","documentation":"Error \"Proxy reference should be { :relation => [:column_name, ...] }\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/services/proxy_reference_registry.rb:19 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":"6b05625475cfe6aac31a88f8c8ee6e62e4efe620","analyzedAt":"2026-08-23T17:46:34.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}