docs/troubleshooting.md
This guide lists common issues you might encounter while installing, upgrading, or operating SourceMonitor, along with concrete steps to resolve them.
mount SourceMonitor::Engine, at: "/source_monitor" (or your custom path) inside the host config/routes.rb.rbenv exec bin/rails routes | grep source_monitor).rbenv exec bin/rails railties:install:migrations FROM=source_monitor followed by rbenv exec bin/rails db:migrate.solid_queue_* tables shipped with the engine migration or run rbenv exec bin/rails solid_queue:install for a dedicated queue database.solid_queue tables—see issue 2 above.SourceMonitor::Jobs::Visibility.config.mission_control_dashboard_path pointing at a valid route helper; otherwise the dashboard hides the link.bin/rails generate source_monitor:install
bin/source_monitor verify to check recurring task registration. The RecurringScheduleVerifier will report whether SourceMonitor recurring tasks are loaded into Solid Queue.config/queue.yml includes recurring_schedule: config/recurring.yml under the dispatchers: section. Without this key, Solid Queue's dispatcher will not load the recurring schedule even though config/recurring.yml exists.dispatchers:
- polling_interval: 1
batch_size: 500
recurring_schedule: config/recurring.yml
bin/dev starts the web server but jobs never run. Running bin/rails solid_queue:start manually works fine.Procfile.dev:
bin/rails generate source_monitor:install
bin/source_monitor verify to check Solid Queue worker status. The SolidQueueVerifier will suggest Procfile.dev if no workers are detected.Procfile.dev includes a jobs: line:
jobs: bundle exec rake solid_queue:start
bin/dev. Without a jobs: entry, the process manager only starts the web server and asset watchers -- Solid Queue workers are not launched.ApplicationCable classes exist (see installation guide)./cable endpoint.config.realtime.adapter = :redis and config.realtime.redis_url in the initializer, then restart web and worker processes.solid_cable_messages table exists and that no other process clears it unexpectedly.bin/rails source_monitor:maintenance:stagger_fetch_times WINDOW_MINUTES=10
config.fetching.stale_timeout_minutes (default 5 minutes). For manual recovery:
bin/rails source_monitor:maintenance:recover_stalled_fetches
config.fetching.scheduler_batch_size = 50 in your initializer.solid_queue.yml includes all three SourceMonitor queues (source_monitor_fetch, source_monitor_scrape, source_monitor_maintenance). Non-fetch jobs on the wrong queue can starve fetch processing.config.http.timeout or config.http.retry_max if the feed is slow or prone to transient errors.FETCH_LOG_DAYS or SCRAPE_LOG_DAYS environment variables (e.g., FETCH_LOG_DAYS=30).SOFT_DELETE=true) if you expect tombstones.SourceMonitor.configure ran before calling rake source_monitor:cleanup:*.SELENIUM_CHROME_BINARY if the binary lives in a non-standard path.rbenv exec bin/test-coverage --verbose to inspect failures with additional logging.MissionControl::Jobs::Engine in your host routes (for example, mount MissionControl::Jobs::Engine, at: "/mission_control").config.mission_control_enabled = true and config.mission_control_dashboard_path pointing at that mounted route helper. Call SourceMonitor.mission_control_dashboard_path in the Rails console to confirm it resolves.test/dummy/bin/dev before configuring the bundling pipeline will serve the admin UI without Tailwind styles or Stimulus behaviours. This happens because the engine no longer ships precompiled assets; see .ai/engine-asset-configuration.md:11-44 for the required npm setup.npm install followed by npm run build inside the engine root so that app/assets/builds/source_monitor/application.css and application.js exist. The Rake task app:source_monitor:assets:build wraps the same scripts for CI usage..ai/engine-asset-configuration.md:32-44 and restart bin/dev so the CSS/JS watchers reconnect.user_agent on the source's custom headers to match a specific browser.error_category field -- a value of blocked confirms Cloudflare detection triggered.Collect the following and open an issue or start a discussion:
SourceMonitor::VERSION)config/initializers/source_monitor.rbWe track known issues and roadmap items in .ai/tasks.md; check the next slice to see if your problem is already scheduled.