ytti/oxidized · error · PromptUndetect

#{@output} not matching configured prompt #{@node.prompt}

Error message

#{@output} not matching configured prompt #{@node.prompt}

What it means

Error "#{@output} not matching configured prompt #{@node.prompt}" thrown in ytti/oxidized.

Source

Thrown at lib/oxidized/input/ssh.rb:34

    end

    def connect(node) # rubocop:disable Naming/PredicateMethod
      @node        = node
      @output      = String.new('')
      @pty_options = { term: "vt100" }
      @node.model.cfg['ssh'].each { |cb| instance_exec(&cb) }

      @yaml_debug = DebugYAML.new(Oxidized.config.input.debug, @node, config_name)
      @text_debug = DebugText.new(Oxidized.config.input.debug, @node, config_name)

      logger.debug "Connecting to #{@node.name}"
      @ssh = Net::SSH.start(@node.ip, @node.auth[:username], make_ssh_opts)
      unless @exec
        shell_open @ssh
        begin
          login
        rescue Timeout::Error
          raise PromptUndetect, [@output, 'not matching configured prompt', @node.prompt].join(' ')
        end
      end
      connected?
    end

    def cmd(cmd, expect = node.prompt)
      unless cmd.is_a?(String)
        logger.error "cmd must be a String (#{cmd.class}): #{cmd.inspect} @ #{node.name}"
        raise ArgumentError, "cmd must be a String"
      end
      logger.debug "Sending '#{cmd.dump}' @ #{node.name} with expect: #{expect.inspect}"
      cmd_output = if @exec
                     @yaml_debug&.send_data(cmd)
                     @text_debug&.send_data(cmd)
                     @ssh.exec! cmd
                   else
                     cmd_shell(cmd, expect).gsub("\r\n", "\n")
                   end

View on GitHub (pinned to 687ed4262d)

When it happens

Trigger: Thrown at lib/oxidized/input/ssh.rb:34 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ytti/oxidized@687ed4262d (2026-08-23). Data as JSON: /api/errors/63cd5a3bc8b875b9. Report an issue: GitHub.