{"record":{"id":"aae9e6839aec329b","repo":"ytti/oxidized","slug":"exec-configuration-invalid-invalid-timeout-value","errorCode":null,"errorMessage":"Exec: configuration invalid: invalid timeout value","messagePattern":"Exec: configuration invalid: invalid timeout value","errorType":"validation","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/oxidized/hook/exec.rb","lineNumber":14,"sourceCode":"class Exec < Oxidized::Hook\n  include Process\n\n  def initialize\n    super\n    @timeout = 60\n    @async = false\n  end\n\n  def validate_cfg!\n    # Syntax check\n    if cfg.has_key? \"timeout\"\n      @timeout = cfg.timeout\n      raise \"invalid timeout value\" unless @timeout.is_a?(Integer) &&\n                                           @timeout.positive?\n    end\n\n    @async = !!cfg.async if cfg.has_key? \"async\"\n\n    if cfg.has_key? \"cmd\"\n      @cmd = cfg.cmd\n      raise \"invalid cmd value\" unless @cmd.is_a?(String) || @cmd.is_a?(Array)\n    end\n  rescue RuntimeError => e\n    raise ArgumentError,\n          \"#{self.class.name}: configuration invalid: #{e.message}\"\n  end\n\n  def run_hook(ctx)\n    env = make_env ctx\n    logger.debug \"Execute: #{@cmd.inspect}\"\n    th = Thread.new do","sourceCodeStart":1,"sourceCodeEnd":32,"githubUrl":"https://github.com/ytti/oxidized/blob/687ed4262d9d21e54662e872e2383386d8498f7b/lib/oxidized/hook/exec.rb#L1-L32","documentation":"Error \"Exec: configuration invalid: invalid timeout value\" thrown in ytti/oxidized.","triggerScenarios":"Thrown at lib/oxidized/hook/exec.rb:14 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":"687ed4262d9d21e54662e872e2383386d8498f7b","analyzedAt":"2026-08-23T11:19:42.084Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}