By Stake
I deployed my Ruby app and got the error
Deploy Error: Container Terminated
But I could not find any errors from the logs (below). My questions are:
Here are the actions I have tried to fix this but they did not work:
Before this issue, my app was deployed successfully several times and I did not change any configs
Below are the deploy logs
[2024-05-07 11:12:59] => Booting Puma
[2024-05-07 11:12:59] => Rails 7.0.8.1 application starting in production
[2024-05-07 11:12:59] => Run `bin/rails server --help` for more startup options
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.945654 #1] INFO -- : Sidekiq 7.1.4 connecting to Redis with options {:size=>10, :pool_name=>"internal", :url=>"redis://default:REDACTED@159.203.99.32:6379/10"}
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.955913 #1] INFO -- : SidekiqScheduler is disabled
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.956054 #1] INFO -- : Running in ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.956077 #1] INFO -- : See LICENSE and the LGPL-3.0 for licensing details.
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.956089 #1] INFO -- : Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
[2024-05-07 11:13:01] D, [2024-05-07T11:13:01.958575 #1] DEBUG -- : Client Middleware:
[2024-05-07 11:13:01] D, [2024-05-07T11:13:01.958811 #1] DEBUG -- : Server Middleware: Sidekiq::Metrics::Middleware
[2024-05-07 11:13:01] D, [2024-05-07T11:13:01.958842 #1] DEBUG -- : Firing startup event
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.965152 #1] INFO -- : Loading Schedule
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.965234 #1] INFO -- : Scheduling import_stocks {"cron"=>"0 0 * * *", "class"=>"FinancialData::ImportStockListWorker", "queue"=>"low", "description"=>"Importing stock list"}
[2024-05-07 11:13:01] I, [2024-05-07T11:13:01.971657 #1] INFO -- : Schedules Loaded
[2024-05-07 11:13:01] D, [2024-05-07T11:13:01.972075 #1] DEBUG -- : {:labels=>#<Set: {}>, :require=>".", :environment=>nil, :concurrency=>5, :timeout=>25, :poll_interval_average=>nil, :average_scheduled_poll_interval=>5, :on_complex_arguments=>:raise, :error_handlers=>[#<Proc:0x00007ec1be81c398 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.1.4/lib/sidekiq/config.rb:37 (lambda)>], :death_handlers=>[], :lifecycle_events=>{:startup=>[], :quiet=>[#<Proc:0x00007ec1bdb31430 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-scheduler-5.0.3/lib/sidekiq-scheduler.rb:24>], :shutdown=>[], :heartbeat=>[], :beat=>[#<Proc:0x00007ec1bdb30800 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.1.4/lib/sidekiq/metrics/tracking.rb:133>]}, :dead_max_jobs=>10000, :dead_timeout_in_seconds=>15552000, :reloader=>#<Sidekiq::Rails::Reloader @app=XProjectCore::Application>, :backtrace_cleaner=>#<Proc:0x00007ec1bdb30eb8 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.1.4/lib/sidekiq/rails.rb:59 (lambda)>, :schedule_manager=>#<SidekiqScheduler::Manager:0x00007ec1bdb16ec8 @scheduler_instance=#<SidekiqScheduler::Scheduler:0x00007ec1bdb168d8 @scheduler_config=#<SidekiqScheduler::Config:0x00007ec1bdb17260 @sidekiq_config=#<Sidekiq::Config:0x00007ec1bf456280 @options={...}, @directory={}, @redis_config={:url=>"redis://default:08cfebeee790aa22fb277decaacb85568c93207d2d15b046e3cefc9cd90374d7@159.203.99.32:6379/10"}, @capsules={"default"=>#<Sidekiq::Capsule:0x00007ec1bdb31688 @name="default", @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @queues=["critical", "default", "mailers", "low"], @weights={"critical"=>0, "default"=>0, "mailers"=>0, "low"=>0}, @concurrency=2, @mode=:strict, @client_chain=#<Sidekiq::Middleware::Chain:0x00007ec1bdb182a0 @config=#<Sidekiq::Capsule:0x00007ec1bdb31688 ...>, @entries=[]>, @server_chain=#<Sidekiq::Middleware::Chain:0x00007ec1bdb17eb8 @config=#<Sidekiq::Capsule:0x00007ec1bdb31688 ...>, @entries=[#<Sidekiq::Middleware::Entry:0x00007ec1bdb308a0 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @klass=Sidekiq::Metrics::Middleware, @args=[#<Sidekiq::Metrics::ExecutionTracker:0x00007ec1bdb30cd8 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @jobs={}, @totals={}, @grams={}, @lock=#<Thread::Mutex:0x00007ec1bdb30b20>>]>]>>}, @logger=#<Sidekiq::Logger:0x00007ec1bdb306e8 @level=0, @progname=nil, @default_formatter=#<Logger::Formatter:0x00007ec1bdb306c0 @datetime_format=nil>, @formatter=nil, @logdev=#<Logger::LogDevice:0x00007ec1bdb30670 @shift_period_suffix=nil, @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>, @binmode=false, @mon_data=#<Monitor:0x00007ec1bdb30648>, @mon_data_owner_object_id=35340>>, @server_chain=#<Sidekiq::Middleware::Chain:0x00007ec1bdb30a80 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @entries=[#<Sidekiq::Middleware::Entry:0x00007ec1bdb308a0 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @klass=Sidekiq::Metrics::Middleware, @args=[#<Sidekiq::Metrics::ExecutionTracker:0x00007ec1bdb30cd8 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @jobs={}, @totals={}, @grams={}, @lock=#<Thread::Mutex:0x00007ec1bdb30b20>>]>]>, @redis=#<ConnectionPool:0x00007ec1bdb2b288 @size=10, @timeout=1, @auto_reload_after_fork=true, @available=#<ConnectionPool::TimedStack:0x00007ec1bdb2b0f8 @create_block=#<Proc:0x00007ec1bdb2b210 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.1.4/lib/sidekiq/redis_connection.rb:22>, @created=1, @que=[#<Sidekiq::RedisClientAdapter::CompatClient:0x00007ec1bdb2a428 @client=#<RedisClient redis://159.203.99.32:6379/10>, @_pipeline_class=Sidekiq::RedisClientAdapter::CompatClient::Pipeline>], @max=10, @mutex=#<Thread::Mutex:0x00007ec1bdb2b058>, @resource=#<Thread::ConditionVariable:0x00007ec1bdb2afe0>, @shutdown_block=nil>, @key=:"pool-35360", @key_count=:"pool-35360-count">, @client_chain=#<Sidekiq::Middleware::Chain:0x00007ec1bdb18318 @config=#<Sidekiq::Config:0x00007ec1bf456280 ...>, @entries=[]>>, @scheduler_config={:enabled=>true, :dynamic=>false, :dynamic_every=>"5s", :schedule=>{"import_stocks"=>{"cron"=>"0 0 * * *", "class"=>"FinancialData::ImportStockListWorker", "queue"=>"low", "description"=>"Importing stock list"}}, :rufus_scheduler_options=>{}}>, @enabled=true, @dynamic=false, @dynamic_every="5s", @listened_queues_only=nil, @rufus_scheduler_options={}, @scheduled_jobs={"import_stocks"=>#<Rufus::Scheduler::CronJob:0x00007ec1bdb12f30 @scheduler=#<Rufus::Scheduler:0x00007ec1bdb13fc0 @opts={}, @started_at=#<EtOrbi::EoTime:0x00007ec1bdb13750 @seconds=1715080381.9655557, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=nil>, @paused_at=nil, @jobs=#<Rufus::Scheduler::JobArray:0x00007ec1bdb13f20 @mutex=#<Thread::Mutex:0x00007ec1bdb13ea8>, @array=[#<Rufus::Scheduler::CronJob:0x00007ec1bdb12f30 ...>]>, @frequency=0.3, @discard_past=true, @mutexes={}, @work_queue=#<Thread::Queue:0x00007ec1bdb13bb0>, @join_queue=#<Thread::Queue:0x00007ec1bdb13b10>, @max_work_threads=28, @stderr=#<IO:<STDERR>>, @thread_key="rufus_scheduler_35380", @scheduler_lock=#<Rufus::Scheduler::NullLock:0x00007ec1bdb139d0>, @trigger_lock=#<Rufus::Scheduler::NullLock:0x00007ec1bdb13958>, @thread=#<Thread:0x00007ec1bdb13390 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/rufus-scheduler-3.9.1/lib/rufus/scheduler.rb:634 sleep>>, @original="0 0 * * *", @opts={:job=>true, :tags=>["import_stocks"]}, @handler=#<Proc:0x00007ec1bdb13048 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-scheduler-5.0.3/lib/sidekiq-scheduler/scheduler.rb:258>, @callable=#<Proc:0x00007ec1bdb13048 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-scheduler-5.0.3/lib/sidekiq-scheduler/scheduler.rb:258>, @scheduled_at=#<EtOrbi::EoTime:0x00007ec1bdb12e18 @seconds=1715080381.9664898, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=nil>, @unscheduled_at=nil, @last_time=nil, @discard_past=nil, @locals={}, @local_mutex=#<Thread::Mutex:0x00007ec1bdb12d78>, @id="cron_1715080381.9664898_35400", @name=nil, @tags=["import_stocks"], @count=0, @last_work_time=0.0, @mean_work_time=0.0, @paused_at=nil, @times=nil, @first_at_no_error=false, @first_at=nil, @last_at=nil, @resume_discard_past=nil, @cron_line=#<Fugit::Cron:0x00007ec1bd7fd8b8 @original="0 0 * * *", @cron_s=nil, @day_and=nil, @seconds=[0], @minutes=[0], @hours=[0], @monthdays=nil, @months=nil, @weekdays=nil, @zone=nil, @timezone=nil>, @next_time=#<EtOrbi::EoTime:0x00007ec1bd7f61a8 @seconds=1715126400.0, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=2024-05-08 00:00:00 +0000>>}, @rufus_scheduler=#<Rufus::Scheduler:0x00007ec1bdb13fc0 @opts={}, @started_at=#<EtOrbi::EoTime:0x00007ec1bdb13750 @seconds=1715080381.9655557, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=nil>, @paused_at=nil, @jobs=#<Rufus::Scheduler::JobArray:0x00007ec1bdb13f20 @mutex=#<Thread::Mutex:0x00007ec1bdb13ea8>, @array=[#<Rufus::Scheduler::CronJob:0x00007ec1bdb12f30 @scheduler=#<Rufus::Scheduler:0x00007ec1bdb13fc0 ...>, @original="0 0 * * *", @opts={:job=>true, :tags=>["import_stocks"]}, @handler=#<Proc:0x00007ec1bdb13048 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-scheduler-5.0.3/lib/sidekiq-scheduler/scheduler.rb:258>, @callable=#<Proc:0x00007ec1bdb13048 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/sidekiq-scheduler-5.0.3/lib/sidekiq-scheduler/scheduler.rb:258>, @scheduled_at=#<EtOrbi::EoTime:0x00007ec1bdb12e18 @seconds=1715080381.9664898, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=nil>, @unscheduled_at=nil, @last_time=nil, @discard_past=nil, @locals={}, @local_mutex=#<Thread::Mutex:0x00007ec1bdb12d78>, @id="cron_1715080381.9664898_35400", @name=nil, @tags=["import_stocks"], @count=0, @last_work_time=0.0, @mean_work_time=0.0, @paused_at=nil, @times=nil, @first_at_no_error=false, @first_at=nil, @last_at=nil, @resume_discard_past=nil, @cron_line=#<Fugit::Cron:0x00007ec1bd7fd8b8 @original="0 0 * * *", @cron_s=nil, @day_and=nil, @seconds=[0], @minutes=[0], @hours=[0], @monthdays=nil, @months=nil, @weekdays=nil, @zone=nil, @timezone=nil>, @next_time=#<EtOrbi::EoTime:0x00007ec1bd7f61a8 @seconds=1715126400.0, @zone=#<TZInfo::DataTimezone: Etc/UTC>, @time=2024-05-08 00:00:00 +0000>>]>, @frequency=0.3, @discard_past=true, @mutexes={}, @work_queue=#<Thread::Queue:0x00007ec1bdb13bb0>, @join_queue=#<Thread::Queue:0x00007ec1bdb13b10>, @max_work_threads=28, @stderr=#<IO:<STDERR>>, @thread_key="rufus_scheduler_35380", @scheduler_lock=#<Rufus::Scheduler::NullLock:0x00007ec1bdb139d0>, @trigger_lock=#<Rufus::Scheduler::NullLock:0x00007ec1bdb13958>, @thread=#<Thread:0x00007ec1bdb13390 /layers/heroku_ruby/gems/vendor/bundle/ruby/3.1.0/gems/rufus-scheduler-3.9.1/lib/rufus/scheduler.rb:634 sleep>>>>}
[2024-05-07 11:13:02] I, [2024-05-07T11:13:01.979786 #1] INFO -- : Sidekiq 7.1.4 connecting to Redis with options {:size=>2, :pool_name=>"default", :url=>"redis://default:REDACTED@159.203.99.32:6379/10"}
[2024-05-07 11:13:02] D, [2024-05-07T11:13:01.985799 #1] DEBUG -- : Firing heartbeat event
[2024-05-07 11:13:02] I, [2024-05-07T11:13:02.176670 #1] INFO -- : Sidekiq running embedded, total process thread count: 7
[2024-05-07 11:13:02] D, [2024-05-07T11:13:02.176758 #1] DEBUG -- : [nil, nil, nil, "sidekiq.heartbeat", "sidekiq.scheduler", "sidekiq.default/processor", "sidekiq.default/processor"]
[2024-05-07 11:13:02] [1] Puma starting in cluster mode...
[2024-05-07 11:13:02] [1] * Puma version: 5.6.8 (ruby 3.1.2-p20) ("Birdie's Version")
[2024-05-07 11:13:02] [1] * Min threads: 5
[2024-05-07 11:13:02] [1] * Max threads: 5
[2024-05-07 11:13:02] [1] * Environment: production
[2024-05-07 11:13:02] [1] * Master PID: 1
[2024-05-07 11:13:02] [1] * Workers: 28
[2024-05-07 11:13:02] [1] * Restarts: (✔) hot (✖) phased
[2024-05-07 11:13:02] [1] * Preloading application
[2024-05-07 11:13:02] [1] * Listening on http://0.0.0.0:8080
[2024-05-07 11:13:02] [1] Use Ctrl-C to stop
[]
;
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
I’m experiencing the same problem and have no clue what’s the reason of my deploy failing. I literally see in the logs that Puma is up and running on 8080 :/
I’m at least glad to hear it’s not just me. I submitted a ticket 3 days ago and they’re looking into it, because it’s been working for months, and suddenly it’s just failing, so clearly it’s something Digital Ocean changed on their end.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.