ytti/oxidized · error · RuntimeError

Slack file upload failed

Error message

Slack file upload failed

What it means

Error "Slack file upload failed" thrown in ytti/oxidized.

Source

Thrown at lib/oxidized/hook/slackdiff.rb:34

    upload_dest = client.files_getUploadURLExternal(filename:     "change",
                                                    length:       content.length,
                                                    snippet_type: "diff")
    file_uri = URI.parse(upload_dest[:upload_url])

    proxy_uri = URI.parse(proxy) if proxy
    proxy_address = proxy_uri ? proxy_uri.host : :ENV
    proxy_port = proxy_uri&.port
    proxy_user = proxy_uri&.user
    proxy_pass = proxy_uri&.password

    http = Net::HTTP.new(file_uri.host, file_uri.port, proxy_address, proxy_port, proxy_user, proxy_pass)
    http.use_ssl = true

    request = Net::HTTP::Post.new(file_uri.request_uri, { Host: file_uri.host })
    request.body = content
    response = http.request(request)

    raise 'Slack file upload failed' unless response.is_a? Net::HTTPSuccess

    files = [{
      id:    upload_dest[:file_id],
      title: title
    }]
    begin
      client.files_completeUploadExternal(channel_id: channel,
                                          files:      files.to_json)
    rescue Slack::Web::Api::Errors::NotInChannel
      logger.info "Not in specified channel, attempting to join"
      client.conversations_join(channel: channel)
      client.files_completeUploadExternal(channel_id: channel,
                                          files:      files.to_json)
    end
  end

  def run_hook(ctx)
    return unless ctx.node

View on GitHub (pinned to 687ed4262d)

When it happens

Trigger: Thrown at lib/oxidized/hook/slackdiff.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/469788cd4f12454b. Report an issue: GitHub.