Alerts and pulses not sending email / slack notificaitons

Hi there,

After a recent upgrade none of our alerts are working. I am wondering if we are missing some jobs in the table.

  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
    "vendor": "Google Inc."
  "system-info": {
    "file.encoding": "UTF-8",
    "": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.11+9",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "",
    "java.version": "11.0.11",
    "": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.11+9",
    "": "Linux",
    "os.version": "5.4.0-1039-gke",
    "user.language": "en",
    "user.timezone": "GMT"
  "metabase-info": {
    "databases": [
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "11.3"
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.2.18"
    "run-mode": "prod",
    "version": {
      "date": "2021-06-15",
      "tag": "v0.39.4",
      "branch": "release-x.39.x",
      "hash": "f538050"
    "settings": {
      "report-timezone": "UTC"

Hi @dodeja
Do you only have 2 jobs? If yes, then there's definitely something wrong.
How many instances are you running?
Unless you have the logs from the startup, then I don't think there's much to look for and I would recommend restarting the instance(s).

I don't have startup logs, I have tried to restart it multiple times but it hasnt done the trick. Is there a migration that I can run to add the default jobs?

@dodeja Those are automatically created at startup, they're not part of migrations.

  1. How many jobs do you have?
  2. Are you running multiple instances?
  3. What's the content of the application database table qrtz_job_details and do you have those jobs in qrtz_cron_triggers?
  1. 2 jobs (same as screenshot)
  2. yes 2-3 (auto scaled)
  3. See screenshots below for contents fo two tables

/Users/dodeja/Desktop/screenshots/CleanShot 2021-07-12 at 11.05.13.png
/Users/dodeja/Desktop/screenshots/CleanShot 2021-07-12 at 11.03.44.png

@dodeja Okay, I have never seen that before. Somehow you've lost parts of the data that controls the scheduler.
Try shutting down and only starting a single instance. If a single-startup doesn't populate the table, then here's a CSV export of my setup, so you should be able to easily re-create the missing 6 rows:

MetabaseScheduler,metabase.task.follow-up-emails.job,DEFAULT,,metabase.task.follow_up_emails.FollowUpEmail,false,false,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.abandonment-emails.job,DEFAULT,,metabase.task.follow_up_emails.AbandonmentEmail,false,false,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.anonymous-stats.job,DEFAULT,,metabase.task.send_anonymous_stats.SendAnonymousUsageStats,false,false,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.upgrade-checks.job,DEFAULT,,metabase.task.upgrade_checks.CheckForNewVersions,false,false,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.send-pulses.job,DEFAULT,,metabase.task.send_pulses.SendPulses,false,false,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.sync-and-analyze.job,DEFAULT,sync-and-analyze for all databases,metabase.task.sync_databases.SyncAndAnalyzeDatabase,true,true,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.update-field-values.job,DEFAULT,update-field-values for all databases,metabase.task.sync_databases.UpdateFieldValues,true,true,false,false,<Use the same blob as the two existing rows>
MetabaseScheduler,metabase.task.task-history-cleanup.job,DEFAULT,,metabase.task.task_history_cleanup.TaskHistoryCleanup,false,false,false,false,<Use the same blob as the two existing rows>