# Stuck at v2.9.0.beta1 – Now Running 3.4.0.beta4-dev after Disabling Hooks: How Can I Lock to Stable Releases?

**URL:** https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816
**Category:** Support
**Tags:** server-resources
**Created:** [February 6, 2025, 6:36am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816 "2025-02-06T06:36:47Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![mreach](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mreach](https://meta.discourse.org/u/mreach)
#### Post date: [February 6, 2025, 6:36am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/1 "2025-02-06T06:36:47Z")

</div>

I had a long-standing issue with a Discourse install that was stuck at v2.9.0.beta1—due to personal challenges, I couldn’t resolve it for years. Back then, it seemed impossible to move to v2.9.0.beta2. Recently, while troubleshooting a rebuild problem, I commented out certain hooks in my `app.yml` (specifically, the ones forcing a tag checkout) like so:

```plaintext
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
    - exec:
        cd: $home
        cmd:
          # - git fetch --depth=1 origin tag v2.9.0.beta2 --no-tags
          # - git checkout v2.9.0.beta2
          - echo "Skipping version upgrade hook"

```

After rebuilding, my instance unexpectedly updated to 3.4.0.beta4-dev. While I’m glad to have moved past that problem, I now want the system to continue following the 3.4.0 beta stream until a stable 3.4.x release is available—and once it is, lock into that stable version so it won’t auto-upgrade into further beta or development versions.

What is the proper method to “pin” or lock the release at a stable version once it’s available, without having to revert or perform manual interventions on every rebuild?

Any guidance or best practices would be much appreciated!

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [February 6, 2025, 7:15am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/2 "2025-02-06T07:15:14Z")

</div>

You can take a look at this guide:

> [@Configure a supported tracking branch to get Discourse software updates](https://meta.discourse.org/t/configure-a-supported-tracking-branch-to-get-discourse-software-updates/17014):
>
> bookmark This guide explains how to configure a supported tracking branch for your Discourse instance to manage software updates. person_raising_hand Required user level: System Administrator warning Console access is required. Managing your Discourse instance’s tracking branch determines the frequency and type of updates you receive. This guide explains the different tracking branches available and provides a step-by-step approach to changing the branch on your setup. Summary Disco…

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [February 6, 2025, 8:07am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/3 "2025-02-06T08:07:44Z")

</div>

Change `tests-passed` to `stable` in your `app.yml`. If you don’t have that in your yml you can look at the samples directory.

---

<div class="post-metadata">

### Author: ![mreach](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mreach](https://meta.discourse.org/u/mreach)
#### Post date: [February 6, 2025, 9:56pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/4 "2025-02-06T21:56:59Z")

</div>

Thanks, so I had:

```plaintext
  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

```

I updated it to be:

```plaintext
  ## Which Git revision should this container use? (default: tests-passed)
  version: stable

```

After rebuild, the system is now at: `3.5.0.beta1-dev`

Which seems even more strange/peculiar. 🤔

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [February 6, 2025, 10:00pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/5 "2025-02-06T22:00:39Z")

</div>

> [@mreach](#):
>
> After rebuild, the system is now at: `3.5.0.beta1-dev`

It would appear that you changed the version to stable after the rebuild. You’re beyond stable now, so you’ll need to change it to beta or tests-passed until the next stable release (and since there was one in the past week, it’ll be quite some time (typically 8-10 months)

---

<div class="post-metadata">

### Author: ![mreach](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mreach](https://meta.discourse.org/u/mreach)
#### Post date: [February 6, 2025, 10:19pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/6 "2025-02-06T22:19:20Z")

</div>

No, unfortunately I did not… I am 100% certain of this, it was on `3.4.0.beta4-dev` and then I changed the `app.yml` and then did the rebuild. Then `3.5.0.beta1-dev` showed up. This is 100% the path that was followed… I have ZERO doubt just to be clear about this. I literally verified things prior to the actions I’ve noted.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [February 6, 2025, 10:36pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/7 "2025-02-06T22:36:14Z")

</div>

> [@mreach](#):
>
> and then I changed the `app.yml` and then did the rebuild.

Does the line with `tests-passed` in it start with a `#`?

---

<div class="post-metadata">

### Author: ![mreach](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mreach](https://meta.discourse.org/u/mreach)
#### Post date: [February 6, 2025, 11:35pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/8 "2025-02-06T23:35:20Z")

</div>

Screenshot of the editor:

 ![This image displays a configuration script snippet with details on setting database, Git repository, and memory settings, specifically selecting the English language and using the stable version in a system environment. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/f/2/c/f2ca87bd9d58c1b6dc3a8ca173b8bdc7be419aa4.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [February 7, 2025, 12:05am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/9 "2025-02-07T00:05:40Z")

</div>

It’s commented out, so what you put there does not matter and the default is tests passed.

When you rebuilt to rebuilt to the latest tests passed

---

<div class="post-metadata">

### Author: ![mreach](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mreach](https://meta.discourse.org/u/mreach)
#### Post date: [February 7, 2025, 12:26am UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/10 "2025-02-07T00:26:16Z")

</div>

Thanks again for your help @pfaffman. To summarize my current understanding:

- Our instance was running **3.4.0.beta4-dev** , which is not considered a stable release.
- When I updated my configuration to use `version: stable` (with the default commented out), I expected that future rebuilds would lock the instance to the stable branch. However, because we were already on a beta version, the update continued forward—resulting in **3.5.0.beta1-dev**.
- It appears that switching to `version: stable` after having advanced past the stable tag doesn’t trigger a rollback; it just means that if we were at or below stable, it would pin us to stable instead of tracking beta versions.

Is that correct?

Additionally, could you clarify what the recommended process is to ensure that we don’t accidentally follow the beta channel in the future? Specifically:

1. Is leaving `version: stable` as the active configuration enough to ensure that, when a stable release is available, our rebuilds will lock into it—provided we haven’t already advanced past it when the stable arrives?
2. Are there any additional steps or cleanup tasks (such as removing or modifying any other configuration elements) that we should perform to avoid inadvertently updating to beta/development versions?

I’m very much wanting to lock into a stable release ASAP, but don’t want to have it jump over this again…

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [February 7, 2025, 1:52pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/11 "2025-02-07T13:52:09Z")

</div>

> [@pfaffman](#):
>
> It’s commented out

Hmm. Doesn’t look like it to me:

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/7/e/77ef9b8873ead2824acd00cb4d84039c27184f46.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [February 8, 2025, 6:15pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/12 "2025-02-08T18:15:48Z")

</div>

Doh! Maybe I looked too fast on my phone. I have no explanation for how I missed that nor how the site is now running 3.5.0.beta1-dev.

---

<div class="post-metadata">

### Author: ![jmbeuken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jmbeuken/32/214923_2.png) [@jmbeuken](https://meta.discourse.org/u/jmbeuken)
#### Post date: [February 24, 2025, 4:32pm UTC](https://meta.discourse.org/t/stuck-at-v2-9-0-beta1-now-running-3-4-0-beta4-dev-after-disabling-hooks-how-can-i-lock-to-stable-releases/350816/13 "2025-02-24T16:32:15Z")

</div>

Hi,

After having suffered the spit of the 3.4.0.beta4-dev update linked to the move from postgres 13 to 15, I’ve been able to recover a functional version 3.5.0.beta1-dev!

Now, in dashboard, there’s a new version :

```plaintext
Installed Latest
3.5.0.beta1-dev 3.5.0.beta1 
(b37b51d15f)`

```

But in the Updates page, we see

```plaintext
Name Commit Hash Last Updated Latest Version Status
New version available! v3.4.0.beta4 +182 43 mins ago v3.5.0.beta1 +8 Update

```

Is it safe to update?

Thank you in advance
