title: Flask on Heroku lots of 500 errors, runs on development machine
body: <p>I just had a quick question about running flask on Heroku. I'm not sure what I'm doing wrong, but I'm very new, so please forgive silly mistakes.</p>
  
  <p>I'm deploying an app on Heroku using Flask. To ensure minimal mistakes in implementation, code was taken directly from <a href="https://github.com/orf/simple" rel="nofollow">https://github.com/orf/simple</a>. I made some small adjustments when following this <a href="https://devcenter.heroku.com/articles/python" rel="nofollow">https://devcenter.heroku.com/articles/python</a>. While the program works fine when I run on the dev machine (via python simple.py), the program hits consistent internal server errors on heroku. Logs are attached.</p>
  
  <p>Any thoughts?</p>
  
  <pre><code>2012-06-23T02:43:47+00:00 heroku[api]: Deploy 69a4995 by *********@gmail.com
  2012-06-23T02:43:47+00:00 heroku[web.1]: State changed from up to bouncing
  2012-06-23T02:43:47+00:00 heroku[web.1]: State changed from bouncing to created
  2012-06-23T02:43:47+00:00 heroku[web.1]: State changed from created to starting
  2012-06-23T02:43:47+00:00 heroku[slugc]: Slug compilation finished
  2012-06-23T02:43:49+00:00 heroku[web.1]: Stopping all processes with SIGTERM
  2012-06-23T02:43:49+00:00 heroku[web.1]: Starting process with command `gunicorn simple:app -b 0.0.0.0:25399 -w 3`
  2012-06-23T02:43:49+00:00 app[web.1]: 2012-06-23 02:43:49 [5] [INFO] Worker exiting (pid: 5)
  2012-06-23T02:43:49+00:00 app[web.1]: 2012-06-23 02:43:49 [7] [INFO] Worker exiting (pid: 7)
  2012-06-23T02:43:49+00:00 app[web.1]: 2012-06-23 02:43:49 [2] [INFO] Handling signal: term
  2012-06-23T02:43:49+00:00 app[web.1]: 2012-06-23 02:43:49 [6] [INFO] Worker exiting (pid: 6)
  2012-06-23T02:43:49+00:00 app[web.1]: 2012-06-23 02:43:49 [2] [INFO] Shutting down: Master
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [2] [INFO] Starting gunicorn 0.13.4
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [2] [INFO] Listening at: http://0.0.0.0:25399 (2)
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [2] [INFO] Using worker: sync
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [6] [INFO] Booting worker with pid: 6
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [5] [INFO] Booting worker with pid: 5
  2012-06-23T02:43:50+00:00 app[web.1]: 2012-06-23 02:43:50 [7] [INFO] Booting worker with pid: 7
  2012-06-23T02:43:50+00:00 heroku[web.1]: Process exited with status 0
  2012-06-23T02:43:51+00:00 heroku[web.1]: State changed from starting to up
  2012-06-23T02:45:00+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=21ms status=500 bytes=291
  2012-06-23T02:45:01+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=14ms status=404 bytes=238
  2012-06-23T02:45:01+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=3ms status=500 bytes=291
  2012-06-23T02:45:01+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=15ms status=404 bytes=238
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=5ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=2ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=4ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=3ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=3ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=5ms status=500 bytes=291
  2012-06-23T02:45:02+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=2ms status=500 bytes=291
  2012-06-23T02:45:03+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=2ms status=500 bytes=291
  2012-06-23T02:45:03+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=4ms status=500 bytes=291
  2012-06-23T02:45:03+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=4ms status=500 bytes=291
  2012-06-23T02:45:03+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=2ms status=404 bytes=238
  2012-06-23T02:45:32+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=2ms status=500 bytes=291
  2012-06-23T02:45:32+00:00 heroku[router]: GET deep-rain-4577.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=13ms status=404 bytes=238
  </code></pre>