#3629·huginn

Weather agent fails with error"\xC2" from ASCII-8BIT to UTF-8

Author: helix90Created Apr 27, 2026Updated Jul 8, 2026

Upgraded to latest and Weather Agent is now failing with "\xC2" from ASCII-8BIT to UTF-8 as the recorded message.

Tested with credentials and call and using API key directly, no change. tested with different location strings, no change.

Error Backtrace "\xC2" from ASCII-8BIT to UTF-8 /app/vendor/bundle/ruby/3.4.0/gems/multi_json-1.20.0/lib/multi_json/adapters/json_gem.rb:39:in 'MultiJson::Adapters::JsonGem#load' /app/vendor/bundle/ruby/3.4.0/gems/multi_json-1.20.0/lib/multi_json/adapter.rb:82:in 'MultiJson::Adapter.load' /app/vendor/bundle/ruby/3.4.0/gems/multi_json-1.20.0/lib/multi_json.rb:181:in 'MultiJson.load' /app/vendor/bundle/ruby/3.4.0/gems/pirate_weather_forecast_ruby-0.1.0/lib/pirate_weather_forecast_ruby.rb:29:in 'ForecastIO.forecast' /app/app/models/agents/weather_agent.rb:136:in 'Agents::WeatherAgent#pirate_weather' /app/app/models/agents/weather_agent.rb:141:in 'Agents::WeatherAgent#model' /app/app/models/agents/weather_agent.rb:73:in 'Agents::WeatherAgent#check' /app/app/jobs/agent_check_job.rb:7:in 'AgentCheckJob#perform' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution.rb:68:in 'block in ActiveJob::Execution#_perform_job' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:101:in 'ActiveSupport::Callbacks#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution.rb:67:in 'ActiveJob::Execution#_perform_job' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/instrumentation.rb:44:in 'ActiveJob::Instrumentation#_perform_job' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution.rb:51:in 'ActiveJob::Execution#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/instrumentation.rb:26:in 'block in ActiveJob::Instrumentation#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activerecord-8.1.3/lib/active_record/railties/job_runtime.rb:12:in 'block in ActiveRecord::Railties::JobRuntime#instrument' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/instrumentation.rb:34:in 'block in ActiveJob::Instrumentation#instrument' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/instrumentation.rb:33:in 'ActiveJob::Instrumentation#instrument' /app/vendor/bundle/ruby/3.4.0/gems/activerecord-8.1.3/lib/active_record/railties/job_runtime.rb:10:in 'ActiveRecord::Railties::JobRuntime#instrument' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/instrumentation.rb:26:in 'ActiveJob::Instrumentation#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/logging.rb:32:in 'block in ActiveJob::Logging#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/tagged_logging.rb:143:in 'block in ActiveSupport::TaggedLogging#tagged' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/tagged_logging.rb:38:in 'ActiveSupport::TaggedLogging::Formatter#tagged' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/tagged_logging.rb:143:in 'ActiveSupport::TaggedLogging#tagged' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/broadcast_logger.rb:228:in 'ActiveSupport::BroadcastLogger#method_missing' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/logging.rb:39:in 'ActiveJob::Logging#tag_logger' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/logging.rb:32:in 'ActiveJob::Logging#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution_state.rb:7:in 'block (2 levels) in ActiveJob::ExecutionState#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/core_ext/time/zones.rb:65:in 'Time.use_zone' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution_state.rb:7:in 'block in ActiveJob::ExecutionState#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.8/lib/i18n.rb:354:in 'I18n::Base#with_locale' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution_state.rb:6:in 'ActiveJob::ExecutionState#perform_now' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution.rb:29:in 'block in ActiveJob::Execution::ClassMethods#execute' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:121:in 'block in ActiveSupport::Callbacks#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/railtie.rb:86:in 'block (4 levels) in class:Railtie' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/reloader.rb:77:in 'block in ActiveSupport::Reloader.wrap' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/execution_wrapper.rb:91:in 'ActiveSupport::ExecutionWrapper.wrap' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/reloader.rb:74:in 'ActiveSupport::Reloader.wrap' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/railtie.rb:85:in 'block (3 levels) in class:Railtie' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:130:in 'BasicObject#instance_exec' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:130:in 'block in ActiveSupport::Callbacks#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:141:in 'ActiveSupport::Callbacks#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/activejob-8.1.3/lib/active_job/execution.rb:27:in 'ActiveJob::Execution::ClassMethods#execute' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/active_job/queue_adapters/delayed_job_adapter.rb:39:in 'ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper#perform' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/backend/base.rb:81:in 'block in Delayed::Backend::Base#invoke_job' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:61:in 'block in Delayed::Callback#initialize' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:66:in 'Delayed::Callback#execute' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:40:in 'Delayed::Lifecycle#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/backend/base.rb:78:in 'Delayed::Backend::Base#invoke_job' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:231:in 'block (2 levels) in Delayed::Worker#run' /app/vendor/bundle/ruby/3.4.0/gems/timeout-0.6.1/lib/timeout.rb:296:in 'block in Timeout.timeout' /app/vendor/bundle/ruby/3.4.0/gems/timeout-0.6.1/lib/timeout.rb:304:in 'Timeout.timeout' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:231:in 'block in Delayed::Worker#run' /app/vendor/bundle/ruby/3.4.0/gems/benchmark-0.5.0/lib/benchmark.rb:324:in 'Benchmark.realtime' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:230:in 'Delayed::Worker#run' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:313:in 'block in Delayed::Worker#reserve_and_run_one_job' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:61:in 'block in Delayed::Callback#initialize' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:66:in 'Delayed::Callback#execute' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:40:in 'Delayed::Lifecycle#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:313:in 'Delayed::Worker#reserve_and_run_one_job' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:214:in 'block in Delayed::Worker#work_off' internal:numeric:257:in 'Integer#times' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:213:in 'Delayed::Worker#work_off' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:176:in 'block (4 levels) in Delayed::Worker#start' /app/vendor/bundle/ruby/3.4.0/gems/benchmark-0.5.0/lib/benchmark.rb:324:in 'Benchmark.realtime' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:175:in 'block (3 levels) in Delayed::Worker#start' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:61:in 'block in Delayed::Callback#initialize' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:66:in 'Delayed::Callback#execute' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:40:in 'Delayed::Lifecycle#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:174:in 'block (2 levels) in Delayed::Worker#start' internal:kernel:168:in 'Kernel#loop' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:173:in 'block in Delayed::Worker#start' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/plugins/clear_locks.rb:7:in 'block (2 levels) in class:ClearLocks' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:79:in 'block (2 levels) in Delayed::Callback#add' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:61:in 'block in Delayed::Callback#initialize' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:79:in 'block in Delayed::Callback#add' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:66:in 'Delayed::Callback#execute' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/lifecycle.rb:40:in 'Delayed::Lifecycle#run_callbacks' /app/vendor/bundle/ruby/3.4.0/gems/delayed_job-4.2.0/lib/delayed/worker.rb:172:in 'Delayed::Worker#start' /app/lib/delayed_job_worker.rb:6:in 'DelayedJobWorker#run' /app/app/concerns/long_runnable.rb:71:in 'block in LongRunnable::Worker#run!'