{"action":"opened","issue":{"url":"https://api.github.com/repos/transitland/gtfs/issues/30","repository_url":"https://api.github.com/repos/transitland/gtfs","labels_url":"https://api.github.com/repos/transitland/gtfs/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/transitland/gtfs/issues/30/comments","events_url":"https://api.github.com/repos/transitland/gtfs/issues/30/events","html_url":"https://github.com/transitland/gtfs/issues/30","id":146046258,"number":30,"title":"\"Zip end of central directory signature not found\"","user":{"login":"drewda","id":212369,"avatar_url":"https://avatars.githubusercontent.com/u/212369?v=3","gravatar_id":"","url":"https://api.github.com/users/drewda","html_url":"https://github.com/drewda","followers_url":"https://api.github.com/users/drewda/followers","following_url":"https://api.github.com/users/drewda/following{/other_user}","gists_url":"https://api.github.com/users/drewda/gists{/gist_id}","starred_url":"https://api.github.com/users/drewda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drewda/subscriptions","organizations_url":"https://api.github.com/users/drewda/orgs","repos_url":"https://api.github.com/users/drewda/repos","events_url":"https://api.github.com/users/drewda/events{/privacy}","received_events_url":"https://api.github.com/users/drewda/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/transitland/gtfs/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-05T16:51:36Z","updated_at":"2016-04-05T16:51:36Z","closed_at":null,"body":"A potential bug in a recent fetch of the Caltrain feed:\r\n\r\n```\r\nZip end of central directory signature not found /home/deploy/.bundler/transitland/ruby/2.2.0/bundler/gems/gtfs-ec8d3cd10572/lib/gtfs/local_source.rb:7:in `rescue in load_archive' /home/deploy/.bundler/transitland/ruby/2.2.0/bundler/gems/gtfs-ec8d3cd10572/lib/gtfs/local_source.rb:5:in `load_archive' /home/deploy/.bundler/transitland/ruby/2.2.0/bundler/gems/gtfs-ec8d3cd10572/lib/gtfs/source.rb:48:in `initialize' /home/deploy/.bundler/transitland/ruby/2.2.0/bundler/gems/gtfs-ec8d3cd10572/lib/gtfs/source.rb:296:in `new' /home/deploy/.bundler/transitland/ruby/2.2.0/bundler/gems/gtfs-ec8d3cd10572/lib/gtfs/source.rb:296:in `build' /srv/www/transitland/releases/20160401165933/app/models/feed_version.rb:77:in `read_gtfs_calendar_dates' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:432:in `block in make_lambda' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:164:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:164:in `block in halting' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:504:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:504:in `block in call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:504:in `each' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:504:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:92:in `__run_callbacks__' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_validation_callbacks' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activemodel-4.2.6/lib/active_model/validations/callbacks.rb:113:in `run_validations!' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activemodel-4.2.6/lib/active_model/validations.rb:338:in `valid?' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:58:in `valid?' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:83:in `perform_validations' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:37:in `save' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:21:in `save' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:286:in `block (2 levels) in save' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:348:in `with_transaction_returning_status' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:286:in `block in save' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:301:in `rollback_active_record_state!' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:285:in `save' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/has_many_association.rb:41:in `insert_record' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:495:in `block (2 levels) in _create_record' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:408:in `replace_on_target' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:403:in `add_to_target' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:493:in `block in _create_record' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:183:in `block in transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:182:in `transaction' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:492:in `_create_record' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/has_many_association.rb:187:in `_create_record' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_association.rb:153:in `create' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/associations/collection_proxy.rb:290:in `create' /srv/www/transitland/releases/20160401165933/app/models/feed.rb:156:in `block in fetch_and_return_feed_version' /srv/www/transitland/releases/20160401165933/app/services/feed_fetch.rb:19:in `block in download_to_tempfile' /srv/www/transitland/releases/20160401165933/app/services/feed_fetch.rb:52:in `block in fetch' /usr/local/lib/ruby/2.2.0/net/http.rb:1421:in `block (2 levels) in transport_request' /usr/local/lib/ruby/2.2.0/net/http/response.rb:162:in `reading_body' /usr/local/lib/ruby/2.2.0/net/http.rb:1420:in `block in transport_request' /usr/local/lib/ruby/2.2.0/net/http.rb:1411:in `catch' /usr/local/lib/ruby/2.2.0/net/http.rb:1411:in `transport_request' /usr/local/lib/ruby/2.2.0/net/http.rb:1384:in `request' /usr/local/lib/ruby/2.2.0/net/http.rb:1377:in `block in request' /usr/local/lib/ruby/2.2.0/net/http.rb:853:in `start' /usr/local/lib/ruby/2.2.0/net/http.rb:1375:in `request' /usr/local/lib/ruby/2.2.0/net/http.rb:1285:in `request_get' /srv/www/transitland/releases/20160401165933/app/services/feed_fetch.rb:42:in `fetch' /srv/www/transitland/releases/20160401165933/app/services/feed_fetch.rb:6:in `download_to_tempfile' /srv/www/transitland/releases/20160401165933/app/models/feed.rb:146:in `fetch_and_return_feed_version' /srv/www/transitland/releases/20160401165933/app/workers/feed_fetcher_worker.rb:11:in `perform' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:151:in `execute_job' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:133:in `block (2 levels) in process' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:127:in `block in invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.17/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb:8:in `block in execute' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.17/lib/sidekiq_unique_jobs/lock/while_executing.rb:19:in `synchronize' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.17/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb:6:in `execute' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.17/lib/sidekiq_unique_jobs/server/middleware.rb:16:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/server/active_record.rb:6:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/server/logging.rb:11:in `block in call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/logging.rb:31:in `with_context' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/server/logging.rb:7:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:132:in `call' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/middleware/chain.rb:132:in `invoke' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:128:in `block in process' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:167:in `stats' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:127:in `process' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:79:in `process_one' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/processor.rb:67:in `run' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/util.rb:16:in `watchdog' /home/deploy/.bundler/transitland/ruby/2.2.0/gems/sidekiq-4.1.1/lib/sidekiq/util.rb:24:in `block in safe_thread' (at 2016-04-05T12:01:05.446Z)\r\n```\r\n\r\nhttps://transit.land/dispatcher/feeds/f-9q9-caltrain"}}