# Cakeday plugin disabled

**URL:** https://meta.discourse.org/t/cakeday-plugin-disabled/389830
**Category:** Bug
**Tags:** cakeday, fixed
**Created:** [November 27, 2025, 3:47pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830 "2025-11-27T15:47:33Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [November 27, 2025, 3:47pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/1 "2025-11-27T15:47:34Z")

</div>

I’m just curious: are there specific reasons why the cakeday plugin has been deactivated here?

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [November 27, 2025, 3:55pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/2 "2025-11-27T15:55:15Z")

</div>

This is your fault 🤣

> [@How do I remove the Anniversaries option from the burger menu?](https://meta.discourse.org/t/how-do-i-remove-the-anniversaries-option-from-the-burger-menu/389758/6):
>
> It was added to core a few weeks ago, and it’s enabled by default 🥳

and then [DEV: Change cakeday and cakeday\_birthday to off by default by cvx · Pull Request #36274 · discourse/discourse · GitHub](https://github.com/discourse/discourse/pull/36274)

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [November 27, 2025, 3:56pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/3 "2025-11-27T15:56:31Z")

</div>

So, the solution for disabling the plugin on forums that didn’t use cakeday before is to disable cakeday on forums that have been using cakeday for years? Is there no way to leave the settings of forums that used it before untouched?

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [November 27, 2025, 4:05pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/4 "2025-11-27T16:05:37Z")

</div>

I think things just went south.

Here’s [migration #1](https://github.com/discourse/discourse/blob/main/plugins/discourse-cakeday/db/migrate/20250717093505_persist_cakeday_enabled.rb), which has been commented out 🤔 .  
How can one know whether it has been ran on every instance?

So that migration persisted SiteSetting.cakeday\_enabled into the database.

Here’s a [clean up migration](https://github.com/discourse/discourse/blob/main/plugins/discourse-cakeday/db/migrate/20251127125226_delete_old_default_values.rb) which deletes that setting if it was made around the time migration #1 was executed. Which looks a bit sketchy ~~but hey, it works~~ _EDIT it doesn’t_.

So now it falls back to default which is now… off ?

---

<div class="post-metadata">

### Author: ![seabass](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/seabass/32/526971_2.png) [@seabass](https://meta.discourse.org/u/seabass)
#### Post date: [November 28, 2025, 11:40am UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/5 "2025-11-28T11:40:51Z")

</div>

Things did go south. It was sketchy and did not work.

I just ran a Discourse site update and couldn’t get past the clean up migration you’re talking about.

This migration is crashing out. [discourse/plugins/discourse-cakeday/db/migrate/20251127125226\_delete\_old\_default\_values.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/plugins/discourse-cakeday/db/migrate/20251127125226_delete_old_default_values.rb)

When the migration runs `migration_timestamp("20250717093505")` and `migration_timestamp("20250811132217")` from the `up` method you get nil values. Those nil values break the sql query in the `delete_settings` method of the migration.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [November 28, 2025, 1:06pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/6 "2025-11-28T13:06:45Z")

</div>

> [@seabass](#):
>
> you get nil values

Probably because the migration it refers to has been commented out.  
I’ve always been taught that migrations should never be modified afterwards. This is why.

I’m going to move this to #Contribute > Bug hoping it gets more eyeballs…

---

<div class="post-metadata">

### Author: ![cvx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cvx/32/152146_2.png) [@cvx](https://meta.discourse.org/u/cvx)
#### Post date: [December 1, 2025, 5:37pm UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/9 "2025-12-01T17:37:50Z")

</div>

The process of merging d-cakeday into core didn’t go as planned…

All bundled plugins have to be disabled by default, and d-cakeday was one of the few migrated that have always been enabled.  
The idea was that sites that had the plugin enabled before the migration to core would still have it enabled, while those that didn’t have the plugin before would use the new default. (off)

I’ve now opened a [PR](https://github.com/discourse/discourse/pull/36353) that replaces the most recent (incorrect) migration with a new one that uses a heuristic to determine whether to enable cakeday/cakeday\_birthday or to keep the default “off” value.

---

<div class="post-metadata">

### Author: ![cvx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cvx/32/152146_2.png) [@cvx](https://meta.discourse.org/u/cvx)
#### Post date: [December 8, 2025, 7:00am UTC](https://meta.discourse.org/t/cakeday-plugin-disabled/389830/11 "2025-12-08T07:00:58Z")

</div>

This topic was automatically closed after 4 days. New replies are no longer allowed.
