FIX: Do not prevent other topic timers running on error (PR #13665)

There was an issue with the TopicTimerEnqueuer where any timer that failed to enqueue_typed_job with an error would prevent all other pending timers after the one that errored from running.

To mitigate this we just capture the error and log it (so we can still fix it if needed for bug crushing) and proceed with the rest of the timer enqueues.

The commit FIX: Remove legacy topic timer code by martin-brennan · Pull Request #13544 · discourse/discourse · GitHub highlighted this issue originally in hosted sites.

GitHub

Let’s use Discourse.warn_exception so that the error is logster friendly.

@tgxworld I didn’t know about that, thanks!