Search code examples
rubydeploymentherokusinatrathin

Heroku: Not Found & Process Exited


I'm not sure how I can debug this. Running this ruby/sinatra/thin app locally I have no issues whatsoever. On Heroku however the app doesn't seem to load, says "Not Found.". I'm not sure how to make sense of the logs:

2013-03-20T22:27:41+00:00 heroku[api]: Enable Logplex by [email protected]
2013-03-20T22:27:41+00:00 heroku[api]: Release v2 created by [email protected]
2013-03-20T22:28:04+00:00 heroku[router]: at=info code= desc="Blank app" method=GET path=/ host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno= queue= wait= connect= service= status=502 bytes=
2013-03-20T22:28:05+00:00 heroku[router]: at=info code= desc="Blank app" method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno= queue= wait= connect= service= status=502 bytes=
2013-03-20T22:28:05+00:00 heroku[router]: at=info code= desc="Blank app" method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno= queue= wait= connect= service= status=502 bytes=
2013-03-20T22:37:08+00:00 heroku[slugc]: Slug compilation started
2013-03-20T22:37:59+00:00 heroku[api]: Scale to web=1 by [email protected]
2013-03-20T22:37:59+00:00 heroku[api]: Add  config by [email protected]
2013-03-20T22:37:59+00:00 heroku[api]: Release v3 created by [email protected]
2013-03-20T22:38:00+00:00 heroku[api]: Release v4 created by [email protected]
2013-03-20T22:38:00+00:00 heroku[api]: Deploy 0a18d12 by [email protected]
2013-03-20T22:38:00+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 33969`
2013-03-20T22:38:00+00:00 heroku[slugc]: Slug compilation finished
2013-03-20T22:38:01+00:00 app[web.1]: bash: bundle: command not found
2013-03-20T22:38:02+00:00 heroku[web.1]: Process exited with status 127
2013-03-20T22:38:09+00:00 heroku[web.1]: State changed from starting to up
2013-03-20T22:38:19+00:00 heroku[router]: at=info method=GET path=/ host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=0ms connect=3ms service=79ms status=404 bytes=18
2013-03-20T22:38:21+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=13ms connect=12ms service=69ms status=404 bytes=18
2013-03-20T22:38:21+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=0ms connect=2ms service=21ms status=404 bytes=18
2013-03-20T22:50:19+00:00 heroku[slugc]: Slug compilation started
2013-03-20T22:51:01+00:00 heroku[api]: Release v5 created by [email protected]
2013-03-20T22:51:01+00:00 heroku[api]: Deploy e18aad6 by [email protected]
2013-03-20T22:51:01+00:00 heroku[web.1]: State changed from up to starting
2013-03-20T22:51:02+00:00 heroku[slugc]: Slug compilation finished
2013-03-20T22:51:09+00:00 heroku[web.1]: State changed from starting to up
2013-03-20T22:52:32+00:00 heroku[router]: at=info method=GET path=/ host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=1ms connect=6ms service=11ms status=404 bytes=18
2013-03-20T22:52:33+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=0ms connect=2ms service=5ms status=404 bytes=18
2013-03-20T22:52:33+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=1ms connect=4ms service=4ms status=404 bytes=18
2013-03-20T22:52:34+00:00 heroku[router]: at=info method=GET path=/ host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=0ms connect=4ms service=4ms status=404 bytes=18
2013-03-20T22:52:35+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=0ms connect=12ms service=4ms status=404 bytes=18
2013-03-20T22:52:35+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=ancient-kings-2615.herokuapp.com fwd="92.225.106.224" dyno=web.1 queue=0 wait=2ms connect=5ms service=4ms status=404 bytes=18 

Any ideas?

Update 21.3.2013

my gemfile

source "http://rubygems.org"

# Sinatra
gem "rake"
gem "thin"
gem "sinatra", "~> 1.3.4"
gem "sinatra-contrib", "~> 1.3.1"
gem 'sinatra-assetpack', :require => 'sinatra/assetpack'

# Sass
gem "sass", "~> 3.2.1"

# Mailing related
gem "hominid", "~> 3.0.5"

# Google Analytics: UNCOMMENT IF DESIRED, THEN ADD YOUR OWN ACCOUNT INFO TO config.ru
#gem 'rack-google-analytics', "~> 0.9.2"

my config.ru

require 'rubygems'
require 'bundler'

Bundler.require

require './app.rb'
run Sinatra::Application

Solution

  • I cloned the repo but couldn't get it to work via rackup, which is what Heroku relies up to run an app. It did work when running the Sinatra app directly via Ruby. Here are the changes I made that got it to work with rackup:

    config.ru

    require 'rubygems'
    require 'bundler'
    
    Bundler.require
    
    require File.expand_path 'app.rb', File.dirname(__FILE__)
    run App
    

    If you've subclassed, run the subclass, otherwise use Sinatra::Application

    I also removed all the $:.unshifts that I found, as they're evil.