Search code examples
ruby-on-railsherokudeploymentredisproduction

Heroku ArgumentError: Invalid Url. Maybe Incompatible with Redis?


When I try to push my code onto Heroku, it appears I have an argument error listed below. Looking through the first few messages after the ArgumentError line, I am assuming it's because I have the redis gem. As I have no idea what is happening, what am I doing wrong?

.....

remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        ArgumentError: invalid url
remote:        /tmp/build_5520123e0f01ae60332802520d05d1b7/vendor/bundle/ruby/2.0.0/gems/redis-3.0.7/lib/redis/client.rb:350:in `_parse_options'

......

My GemFile just for reference

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.6'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

gem "bcrypt", "3.1.7"
gem "faker", "1.4.2"
gem 'bootstrap-sass', '3.2.0.0'
gem 'backstretch-rails', '~>2.0.4'
gem "font-awesome-rails"
gem 'redis', '~> 3.0.1'
gem 'hiredis', '~> 0.4.5'
gem 'braintree', '~> 2.33.1'
gem 'figaro', '~> 0.7.0'
gem 'gon', '~> 5.1.2'


gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc


gem 'spring',        group: :development

group :development do
  gem "better_errors"
end

group :production do
    gem 'unicorn', '4.8.3'
    gem 'rails_12factor', '0.0.2'
end

Solution

  • The REDIS message is a bit of a red herring

    Make sure that your .git/config is set correctly for heroku.

    Something like:

    [remote "heroku"]

    url = [email protected]:my-awesome-project.git

    and not:

    [remote "heroku"]

    url = https://heroku.com/my-awesome-project.git

    The latter will start your deploys and everything will look right, but the compilation will fail.