discourse/app/jobs/scheduled
Ted Johansson 623f2279b0
FEATURE: Add problem checks page to admin panel and allow ignoring problem checks (#39103)
## Background

Currently you can "dismiss" problem checks on the dashboard, but if the
problem persists it will show up again on the next reload, which is
confusing.

There was previously some discussion about adding a feature to "snooze"
problem checks, but I think even with that it remains a bit too opaque.
You'd need to spelunk around in the console to try and figure out what
is going on.

## What is this change?

This PR does a couple of things:

### 1. Replace Dismiss with Ignore

Hitting ignore will prevent the problem check from creating new admin
notices until it has been unignored from the new problem checks page.

**Screenshot**

<img width="395" height="61" alt="Screenshot 2026-04-05 at 4 37 39 PM"
src="https://github.com/user-attachments/assets/4816fd04-046b-441e-9471-c160dd3f82b9"
/>

### 2. Add a new problem check page

This page provides a list of problem checks with information on whether
they are passing or failing, and when they were last run. You can also
ignore or unignore (watch) problem checks from here.

**Screenshot**

<img width="600" height="200" alt="Screenshot 2026-04-05 at 4 26 37 PM"
src="https://github.com/user-attachments/assets/d8cb2b6a-3f56-409c-97f0-312cb1545654"
/>

### 3. Remove the problem check timestamp from the dashboard

This timestamp made sense under the previous model, where all checks
were run at once and the results cached. With the new model, there's a
mix of on-demand and scheduled checks, and having a single timestamp is
misleading at best. In practice it's always going to be just the
timestamp when you last loaded the dashboard.

**Before**

<img width="240" height="100" alt="Screenshot 2026-04-05 at 4 30 21 PM"
src="https://github.com/user-attachments/assets/1846e024-0042-476e-8b5d-41b6745af75f"
/>

**After**

<img width="210" height="95" alt="Screenshot 2026-04-05 at 4 29 19 PM"
src="https://github.com/user-attachments/assets/a39c87c1-c1e3-4621-8219-e3903ba2ada4"
/>
2026-04-23 08:28:33 +08:00
..
about_stats.rb
activation_reminder_emails.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
aggregate_web_hooks_events.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
auto_queue_handler.rb DEV: replace .each with .find_each for paginated queries (#27159) 2024-05-23 15:42:21 -07:00
backfill_dominant_colors.rb PERF: Move dominant color calculation to separate job (#18501) 2022-10-06 13:26:08 +01:00
backfill_nested_reply_stats.rb FEATURE: First iteration of nested replies (#38888) 2026-04-16 08:06:44 -05:00
badge_grant.rb PERF: Enqueue Job::BackfillBadge in Jobs::BadgeGrant (#30945) 2025-01-24 09:35:01 +08:00
bookmark_reminder_notifications.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
calculate_scores.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
call_discourse_hub.rb FEATURE: call hub API to update Discourse discover enrollment. (#25634) 2024-02-23 11:42:28 +05:30
category_stats.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
check_new_features.rb FEATURE: Merge permanent upcoming changes with new features feed (#38526) 2026-03-25 07:52:31 +10:00
check_out_of_date_themes.rb FIX: Continue if checking themes if updating one fails (#19665) 2023-01-09 11:56:43 -06:00
check_translation_overrides.rb FIX: Ensure JsLocaleHelper to not output deprecated translations (#28037) 2024-07-29 15:21:25 +08:00
check_upcoming_changes.rb DEV: Remove enable_upcoming_changes global setting gate (#38360) 2026-03-10 10:08:20 +10:00
clean_dismissed_topic_users.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_api_keys_max_life.rb FEATURE: site settings to revoke api keys older than a number of days (#23595) 2023-09-15 16:31:29 -03:00
clean_up_associated_accounts.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_associated_groups.rb FEATURE: Experimental support for group membership via google auth (#14835) 2021-12-09 12:30:27 +00:00
clean_up_bookmarks.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
clean_up_crawler_stats.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_drafts.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
clean_up_email_change_requests.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_email_logs.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_email_tokens.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_exports.rb
clean_up_inactive_users.rb FIX: consider users.created_at for inactive cleanup (#21688) 2023-05-23 13:41:23 +05:30
clean_up_post_reply_keys.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_search_logs.rb
clean_up_stylesheet_cache.rb PERF: Add scheduled job to delete old stylesheet cache rows (#13747) 2021-07-16 10:58:01 -04:00
clean_up_tags.rb FIX: sort tag names in clean up tags staff log entry (#37909) 2026-02-19 14:43:58 +08:00
clean_up_unmatched_emails.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_unmatched_ips.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_unsubscribe_keys.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_unused_api_keys.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_unused_registered_user_api_key_clients.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
clean_up_unused_staged_users.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
clean_up_unused_user_api_keys.rb FEATURE: site settings to revoke api keys older than a number of days (#23595) 2023-09-15 16:31:29 -03:00
clean_up_uploads.rb FIX: Clean up not secure uploads with access_control_post_id (#31189) 2025-02-06 11:26:34 +10:00
clean_up_user_api_keys_max_life.rb FEATURE: site settings to revoke api keys older than a number of days (#23595) 2023-09-15 16:31:29 -03:00
clean_up_user_auth_tokens.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
cleanup_problem_check_trackers.rb DEV: Clean up trackers with outdated targets (#35978) 2026-01-14 12:54:16 +01:00
cleanup_redelivering_web_hook_events.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
clear_expired_impersonations.rb DEV: Allow impersonation without session swapping (#34213) 2025-08-21 14:18:15 +08:00
create_missing_avatars.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
create_recent_post_search_indexes.rb DEV: Deprecate the assignment of nil to site settings (#36093) 2025-12-01 15:04:23 +08:00
delete_rejected_emails.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
destroy_old_deletion_stubs.rb
destroy_old_hidden_posts.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
directory_refresh_daily.rb
directory_refresh_older.rb
drop_backup_schema.rb FEATURE: Drop "backup" schema 7 days after restore 2020-01-16 17:48:47 +01:00
enqueue_digest_emails.rb FIX: send activity summaries based on "last seen" (#27035) 2024-05-22 10:23:03 +02:00
enqueue_onceoffs.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
enqueue_suspect_users.rb FIX: Exclude suspended users from suspect users review queue (#37796) 2026-02-16 10:46:52 +08:00
ensure_badges_consistency.rb PERF: Enqueue Job::BackfillBadge in Jobs::BadgeGrant (#30945) 2025-01-24 09:35:01 +08:00
ensure_db_consistency.rb DEV: Rescue from each step of EnsureDbConsistency (#31313) 2025-02-13 12:07:04 +02:00
ensure_s3_uploads_existence.rb FIX: Jobs::EnsureS3UploadsExistence broken for multisite (#27401) 2024-06-10 16:26:39 +08:00
fix_user_usernames_and_groups_names_clash.rb DEV: Hand-pick Rails/WhereNot autofixes (#35117) 2025-10-03 13:29:22 +02:00
grant_anniversary_badges.rb DEV: extract anniversary badge query (#19716) 2023-01-16 11:55:00 +01:00
grant_new_user_of_the_month_badges.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
heartbeat.rb FIX: Redo Sidekiq monitoring to restart stuck sidekiq processes (#30198) 2024-12-18 12:48:50 +08:00
ignored_users_summary.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
invalidate_inactive_admins.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
migrate_upload_scheme.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
notify_admins_of_problems.rb FEATURE: Add problem checks page to admin panel and allow ignoring problem checks (#39103) 2026-04-23 08:28:33 +08:00
old_keys_reminder.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
pending_queued_posts_reminder.rb DEV: Enable unless cops 2023-02-21 10:30:48 +01:00
pending_reviewables_reminder.rb FIX: rename notify_about_flags_after to notify_about_reviewable_item_after (#21320) 2023-05-02 08:08:22 +10:00
pending_users_reminder.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
periodical_updates.rb DEV: ensure rebaking works even when some users have inconsistent data (#30261) 2024-12-16 19:48:25 +08:00
poll_mailbox.rb DEV: Database backed admin notices (#26192) 2024-05-23 09:29:08 +08:00
presence_channel_auto_leave.rb DEV: Introduce PresenceChannel API for core and plugin use 2021-08-27 16:26:06 +01:00
process_badge_backlog.rb
process_shelved_notifications.rb DEV: Replace 'processed' column on notifications with new table (#11864) 2021-01-27 10:29:24 -06:00
process_user_notification_schedules.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
purge_deleted_uploads.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
purge_expired_ignored_users.rb DEV: Cleanup ignored user logic (#11107) 2020-11-03 12:38:54 +00:00
purge_old_mini_scheduler_stat.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
purge_old_notifications.rb DEV: Split weekly job into multiple smaller jobs (#31260) 2025-02-11 10:26:45 +02:00
purge_old_web_hook_events.rb
purge_old_web_hook_events_daily_aggregate.rb FEATURE: Add WebHookEventsDailyAggregate (#27542) 2024-06-25 13:56:47 -03:00
purge_unactivated.rb
redeliver_web_hook_events.rb DEV: always load the excon gem 2026-01-15 17:13:11 -05:00
regenerate_sitemaps.rb FEATURE: Let sites add a sitemap.xml file. (#16357) 2022-04-12 10:33:59 -03:00
reindex_search.rb DEV: Move private method to bottom of file 2026-02-09 18:41:22 +00:00
reviewable_priorities.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
run_problem_checks.rb FIX: Problem checks running with NO_TARGET (#37430) 2026-02-02 15:28:58 +10:00
schedule_backup.rb DEV: Rename Backuper to Creator 2026-01-22 18:46:02 +00:00
tl3_promotions.rb DEV: Add tl3_custom_promotions plugin modifier to tl3_promotions.rb (#29834) 2024-11-22 15:28:43 -05:00
top_refresh_older.rb
top_refresh_today.rb
topic_timer_enqueuer.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
unsilence_users.rb DEV: Apply syntax_tree formatting to app/* 2023-01-09 14:14:59 +00:00
update_animated_uploads.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00
update_heat_settings.rb
update_topic_hot_scores.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00