POST http://127.0.0.1:41447/api/nodes 500: Internal Server Error #12

Closed
opened 2026-10-04 22:56:53 +02:00 by adam · 1 comment
Owner

[warn] POST http://127.0.0.1:41447/api/nodes failed: HTTP Error 500: Internal Server Error

[warn] POST http://127.0.0.1:41447/api/nodes failed: HTTP Error 500: Internal Server Error <!-- github-sync-id:3419425590 -->
adam closed this issue 2026-10-04 22:56:53 +02:00
Author
Owner
2025-09-16 14:47:00 - SQLite3::BusyException - database is locked::                                                                                                                            
        INSERT INTO nodes(node_id,num,short_name,long_name,macaddr,hw_model,role,public_key,is_unmessagable,is_favorite,                                                                       
                          hops_away,snr,last_heard,first_heard,battery_level,voltage,channel_utilization,air_util_tx,uptime_seconds,                                                           
                          position_time,location_source,latitude,longitude,altitude)                                                                                                           
        VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)                                                                                                                               
        ON CONFLICT(node_id) DO UPDATE SET                                                                                                                                                     
          num=excluded.num, short_name=excluded.short_name, long_name=excluded.long_name, macaddr=excluded.macaddr,                                                                            
          hw_model=excluded.hw_model, role=excluded.role, public_key=excluded.public_key, is_unmessagable=excluded.is_unmessagable,                                                            
          is_favorite=excluded.is_favorite, hops_away=excluded.hops_away, snr=excluded.snr, last_heard=excluded.last_heard,                                                                    
          battery_level=excluded.battery_level, voltage=excluded.voltage, channel_utilization=excluded.channel_utilization,                                                                    
          air_util_tx=excluded.air_util_tx, uptime_seconds=excluded.uptime_seconds, position_time=excluded.position_time,                                                                      
          location_source=excluded.location_source, latitude=excluded.latitude, longitude=excluded.longitude,                                                                                  
          altitude=excluded.altitude                                                                                                                                                           
        WHERE COALESCE(excluded.last_heard,0) >= COALESCE(nodes.last_heard,0)                                                                                                                  
        /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/statement.rb:36:in 'SQLite3::Statement#prepare'                                                             
        /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/statement.rb:36:in 'SQLite3::Statement#initialize'                                                          
        /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:217:in 'Class#new'                                                                              
        /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:217:in 'SQLite3::Database#prepare'                                                              
        /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:249:in 'SQLite3::Database#execute'                                                              
        app.rb:187:in 'Object#upsert_node'                                                                                                                                                     
        app.rb:265:in 'block (2 levels) in <main>'                                                                                                                                             
        app.rb:264:in 'Hash#each'                                                                                                                                                              
        app.rb:264:in 'block in <main>'                                                                                                                                                        
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1807:in 'Method#call'                                                                                                
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1807:in 'block in Sinatra::Base.compile!'                                                                            
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1074:in 'block (3 levels) in Sinatra::Base#route!'                                                                   
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1092:in 'Sinatra::Base#route_eval'                            
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1074:in 'block (2 levels) in Sinatra::Base#route!'                    
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1123:in 'block in Sinatra::Base#process_route'              
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1121:in 'Kernel#catch'                             
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1121:in 'Sinatra::Base#process_route'              
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1072:in 'block in Sinatra::Base#route!'                             
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1069:in 'Array#each'                                                                                                 
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1069:in 'Sinatra::Base#route!'                                                                                       
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1193:in 'block in Sinatra::Base#dispatch!'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Kernel#catch'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Sinatra::Base#invoke'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1188:in 'Sinatra::Base#dispatch!'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1004:in 'block in Sinatra::Base#call!'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Kernel#catch'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Sinatra::Base#invoke'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1004:in 'Sinatra::Base#call!'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:993:in 'Sinatra::Base#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/xss_header.rb:20:in 'Rack::Protection::XSSHeader#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/path_traversal.rb:18:in 'Rack::Protection::PathTraversal#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/json_csrf.rb:28:in 'Rack::Protection::JsonCsrf#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/frame_options.rb:33:in 'Rack::Protection::FrameOptions#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/middleware/logger.rb:17:in 'Sinatra::Middleware::Logger#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/common_logger.rb:43:in 'Rack::CommonLogger#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:269:in 'Rack::CommonLogger#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:262:in 'Sinatra::CommonLogger#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/head.rb:15:in 'Rack::Head#call'
        /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/method_override.rb:28:in 'Rack::MethodOverride#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/show_exceptions.rb:23:in 'Sinatra::ShowExceptions#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:227:in 'Sinatra::ExtendedRack#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:2138:in 'Sinatra::Wrapper#call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1677:in 'block in Sinatra::Base.call'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1898:in 'Sinatra::Base.synchronize'
        /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1677:in 'Sinatra::Base.call'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/configuration.rb:297:in 'Puma::Configuration::ConfigMiddleware#call'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/request.rb:101:in 'block in Puma::Request#handle_request'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/thread_pool.rb:346:in 'Puma::ThreadPool#with_force_shutdown'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/request.rb:100:in 'Puma::Request#handle_request'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/server.rb:497:in 'Puma::Server#process_client'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/server.rb:266:in 'block in Puma::Server#run'
        /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/thread_pool.rb:173:in 'block in Puma::ThreadPool#spawn_thread'
``` 2025-09-16 14:47:00 - SQLite3::BusyException - database is locked:: INSERT INTO nodes(node_id,num,short_name,long_name,macaddr,hw_model,role,public_key,is_unmessagable,is_favorite, hops_away,snr,last_heard,first_heard,battery_level,voltage,channel_utilization,air_util_tx,uptime_seconds, position_time,location_source,latitude,longitude,altitude) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT(node_id) DO UPDATE SET num=excluded.num, short_name=excluded.short_name, long_name=excluded.long_name, macaddr=excluded.macaddr, hw_model=excluded.hw_model, role=excluded.role, public_key=excluded.public_key, is_unmessagable=excluded.is_unmessagable, is_favorite=excluded.is_favorite, hops_away=excluded.hops_away, snr=excluded.snr, last_heard=excluded.last_heard, battery_level=excluded.battery_level, voltage=excluded.voltage, channel_utilization=excluded.channel_utilization, air_util_tx=excluded.air_util_tx, uptime_seconds=excluded.uptime_seconds, position_time=excluded.position_time, location_source=excluded.location_source, latitude=excluded.latitude, longitude=excluded.longitude, altitude=excluded.altitude WHERE COALESCE(excluded.last_heard,0) >= COALESCE(nodes.last_heard,0) /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/statement.rb:36:in 'SQLite3::Statement#prepare' /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/statement.rb:36:in 'SQLite3::Statement#initialize' /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:217:in 'Class#new' /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:217:in 'SQLite3::Database#prepare' /home/user/.gem/ruby/3.4.0/gems/sqlite3-2.7.3-x86_64-linux-gnu/lib/sqlite3/database.rb:249:in 'SQLite3::Database#execute' app.rb:187:in 'Object#upsert_node' app.rb:265:in 'block (2 levels) in <main>' app.rb:264:in 'Hash#each' app.rb:264:in 'block in <main>' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1807:in 'Method#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1807:in 'block in Sinatra::Base.compile!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1074:in 'block (3 levels) in Sinatra::Base#route!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1092:in 'Sinatra::Base#route_eval' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1074:in 'block (2 levels) in Sinatra::Base#route!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1123:in 'block in Sinatra::Base#process_route' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1121:in 'Kernel#catch' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1121:in 'Sinatra::Base#process_route' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1072:in 'block in Sinatra::Base#route!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1069:in 'Array#each' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1069:in 'Sinatra::Base#route!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1193:in 'block in Sinatra::Base#dispatch!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Kernel#catch' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Sinatra::Base#invoke' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1188:in 'Sinatra::Base#dispatch!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1004:in 'block in Sinatra::Base#call!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Kernel#catch' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1164:in 'Sinatra::Base#invoke' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1004:in 'Sinatra::Base#call!' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:993:in 'Sinatra::Base#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/xss_header.rb:20:in 'Rack::Protection::XSSHeader#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/path_traversal.rb:18:in 'Rack::Protection::PathTraversal#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/json_csrf.rb:28:in 'Rack::Protection::JsonCsrf#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/base.rb:53:in 'Rack::Protection::Base#call' /home/user/.gem/ruby/3.4.0/gems/rack-protection-4.1.1/lib/rack/protection/frame_options.rb:33:in 'Rack::Protection::FrameOptions#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/middleware/logger.rb:17:in 'Sinatra::Middleware::Logger#call' /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/common_logger.rb:43:in 'Rack::CommonLogger#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:269:in 'Rack::CommonLogger#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:262:in 'Sinatra::CommonLogger#call' /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/head.rb:15:in 'Rack::Head#call' /home/user/.gem/ruby/3.4.0/gems/rack-3.2.1/lib/rack/method_override.rb:28:in 'Rack::MethodOverride#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/show_exceptions.rb:23:in 'Sinatra::ShowExceptions#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:227:in 'Sinatra::ExtendedRack#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:2138:in 'Sinatra::Wrapper#call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1677:in 'block in Sinatra::Base.call' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1898:in 'Sinatra::Base.synchronize' /home/user/.gem/ruby/3.4.0/gems/sinatra-4.1.1/lib/sinatra/base.rb:1677:in 'Sinatra::Base.call' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/configuration.rb:297:in 'Puma::Configuration::ConfigMiddleware#call' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/request.rb:101:in 'block in Puma::Request#handle_request' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/thread_pool.rb:346:in 'Puma::ThreadPool#with_force_shutdown' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/request.rb:100:in 'Puma::Request#handle_request' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/server.rb:497:in 'Puma::Server#process_client' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/server.rb:266:in 'block in Puma::Server#run' /home/user/.gem/ruby/3.4.0/gems/puma-7.0.2/lib/puma/thread_pool.rb:173:in 'block in Puma::ThreadPool#spawn_thread' ``` <!-- github-comment-id:3298619219 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/potato-mesh#12