Upgrading tutor to Palm

@regis Yes, there was a single plugin still enabled:

name: set_default_enrollment
version: 0.1.0
patches:
 lms-env: |
  "COURSE_MODE_DEFAULTS": {
    "name": "Honor",
    "slug": "honor",
    "bulk_sku": null,
    "currency": "usd",
    "description": null,
    "expiration_datetime": null,
    "min_price": 0,
    "sku": null,
    "suggested_prices": "",
    "certificate_type": "honor"
  }

That we picked up from here: How to convert all the enrollments from audit to professional - #7 by jaqusa, without which Certificates don’t work.

I did

ubuntu@ip-172-31-18-14:~$ git clone https://github.com/overhangio/tutor-mfe.git
Cloning into 'tutor-mfe'...
remote: Enumerating objects: 1045, done.
remote: Counting objects: 100% (365/365), done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 1045 (delta 255), reused 293 (delta 226), pack-reused 680
Receiving objects: 100% (1045/1045), 1.43 MiB | 19.51 MiB/s, done.
Resolving deltas: 100% (507/507), done.
ubuntu@ip-172-31-18-14:~$ cd tutor-mfe/
ubuntu@ip-172-31-18-14:~/tutor-mfe$ git checkout palm
Branch 'palm' set up to track remote branch 'palm' from 'origin'.
Switched to a new branch 'palm'
ubuntu@ip-172-31-18-14:~/tutor-mfe$ pip install -e .
Defaulting to user installation because normal site-packages is not writeable
Obtaining file:///home/ubuntu/tutor-mfe
  Preparing metadata (setup.py) ... done
Requirement already satisfied: tutor<17.0.0,>=16.0.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor-mfe==16.0.0) (16.0.0)
Requirement already satisfied: appdirs in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (1.4.4)
Requirement already satisfied: click>=8.0 in /usr/lib/python3/dist-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (8.0.3)
Requirement already satisfied: jinja2>=2.10 in /usr/lib/python3/dist-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (3.0.3)
Requirement already satisfied: kubernetes in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (25.3.0)
Requirement already satisfied: mypy in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (0.991)
Requirement already satisfied: pycryptodome in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (3.16.0)
Requirement already satisfied: pyyaml>=6.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (6.0)
Requirement already satisfied: typing-extensions>=4.4.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (4.4.0)
Requirement already satisfied: certifi>=14.05.14 in /usr/lib/python3/dist-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (2020.6.20)
Requirement already satisfied: six>=1.9.0 in /usr/lib/python3/dist-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (1.16.0)
Requirement already satisfied: python-dateutil>=2.5.3 in /home/ubuntu/.local/lib/python3.10/site-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (2.8.2)
Requirement already satisfied: setuptools>=21.0.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (67.8.0)
Requirement already satisfied: google-auth>=1.0.1 in /home/ubuntu/.local/lib/python3.10/site-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (2.15.0)
Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /usr/lib/python3/dist-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (1.2.3)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (2.25.1)
Requirement already satisfied: requests-oauthlib in /home/ubuntu/.local/lib/python3.10/site-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (1.3.1)
Requirement already satisfied: urllib3>=1.24.2 in /usr/lib/python3/dist-packages (from kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (1.26.5)
Requirement already satisfied: mypy-extensions>=0.4.3 in /home/ubuntu/.local/lib/python3.10/site-packages (from mypy->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (0.4.3)
Requirement already satisfied: tomli>=1.1.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from mypy->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (2.0.1)
Requirement already satisfied: cachetools<6.0,>=2.0.0 in /home/ubuntu/.local/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (5.2.0)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/lib/python3/dist-packages (from google-auth>=1.0.1->kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (0.2.1)
Requirement already satisfied: rsa<5,>=3.1.4 in /home/ubuntu/.local/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (4.9)
Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib->kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (3.2.0)
Requirement already satisfied: pyasn1>=0.1.3 in /usr/lib/python3/dist-packages (from rsa<5,>=3.1.4->google-auth>=1.0.1->kubernetes->tutor<17.0.0,>=16.0.0->tutor-mfe==16.0.0) (0.4.8)
Installing collected packages: tutor-mfe
  Attempting uninstall: tutor-mfe
    Found existing installation: tutor-mfe 15.0.6
    Uninstalling tutor-mfe-15.0.6:
      Successfully uninstalled tutor-mfe-15.0.6
  Running setup.py develop for tutor-mfe
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tutor-ecommerce 15.0.2 requires tutor<16.0.0,>=15.0.0, but you have tutor 16.0.0 which is incompatible.
tutor-ecommerce 15.0.2 requires tutor-mfe<16.0.0,>=15.0.0, but you have tutor-mfe 16.0.0 which is incompatible.
Successfully installed tutor-mfe
ubuntu@ip-172-31-18-14:~$ tutor plugins enable mfe
Plugin mfe enabled
Configuration saved to /home/ubuntu/.local/share/tutor/config.yml
You should now re-generate your environment with `tutor config save`.
ubuntu@ip-172-31-18-14:~$ tutor config save
Configuration saved to /home/ubuntu/.local/share/tutor/config.yml
Environment generated in /home/ubuntu/.local/share/tutor/env
ubuntu@ip-172-31-18-14:~$ tutor local launch

And I got the following error:

Configuration saved to /home/ubuntu/.local/share/tutor/config.yml
Environment generated in /home/ubuntu/.local/share/tutor/env
======================================
        Building Docker images
======================================
No image to build
==============================================
        Stopping any existing platform
==============================================
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local stop
[+] Stopping 11/0
 ✔ Container tutor_local-lms-worker-1     Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-cms-worker-1     Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-caddy-1          Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-cms-1            Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-lms-1            Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-elasticsearch-1  Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-mongodb-1        Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-smtp-1           Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-redis-1          Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-mysql-1          Stopped                                                                                                                                                                                                      0.0s 
 ✔ Container tutor_local-permissions-1    Stopped                                                                                                                                                                                                      0.0s 
======================================================
        Starting the platform in detached mode
======================================================
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/dev/docker-compose.yml --project-name tutor_dev stop
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local up --remove-orphans -d
[+] Running 1/0
 ✘ mfe Error                                                                                                                                                                                                                                           0.1s 
Error response from daemon: manifest for overhangio/openedx-mfe:16.0.0 not found: manifest unknown: manifest unknown
Error: Command failed with status 18: docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local up --remove-orphans -d

Almost there:

tutor images build all
tutor local launch

Thanks @regis, I didn’t realize it would need a rebuild again.

It looks like it’s finally launched and working with palm! \o/

Time to see what’s broken! Starting with, why am I not able to use that previous plugin which is required to make certificates work by default for everyone?

name: set_default_enrollment
version: 0.1.0
patches:
 lms-env: |
  "COURSE_MODE_DEFAULTS": {
    "name": "Honor",
    "slug": "honor",
    "bulk_sku": null,
    "currency": "usd",
    "description": null,
    "expiration_datetime": null,
    "min_price": 0,
    "sku": null,
    "suggested_prices": "",
    "certificate_type": "honor"
  }

This error implies that you need to add a key named “android_sku” to your configuration. But what should the value be? I don’t have a clue.

It looks like there are ‘android_sku’ and ‘ios_sku’ values now required (according to this code: edx-platform/models.py at master · openedx/edx-platform · GitHub)

Adding them as null seemed to get it back to working… but then when I checked an hour later it wasn’t working again, so I’m now debugging again…

For the record, as of right now, here’s my notional theory of how to upgrade from Olive to Palm before Palm is released, on a stock Ubuntu 22.04 system (which I’ll need to re-confirm again after reverting the VM snapshot):

    1. Upgrade docker per https://docs.docker.com/engine/install/ubuntu/
        1. sudo apt-get update
        2. sudo apt-get install ca-certificates curl gnupg
        3. sudo install -m 0755 -d /etc/apt/keyrings
        4. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
        5. sudo chmod a+r /etc/apt/keyrings/docker.gpg
        6. echo \
        7.   "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
        8.   "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
        9.   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
        10. sudo apt-get update
        11. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
        12. sudo reboot
        13. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
        14. sudo docker run hello-world
    2. Update tutor & plugins
        1. pip install -U git+https://github.com/overhangio/tutor@palm#egg=tutor
        2. tutor config save
        3. git clone https://github.com/overhangio/tutor-mfe.git
        4. cd tutor-mfe
        5. git checkout palm
        6. pip install -e .
        7. git clone https://github.com/overhangio/tutor-forum.git
        8. cd tutor-forum 
        9. git checkout palm
        10. pip install -e .
        11. tutor plugins enable mfe
        12. tutor config save
        13. tutor images build all
        14. tutor local upgrade --from=olive
        15. tutor local launch
3 Likes

@regis how can I upgrade tutor-indigo for palm? It doesn’t seem to have a palm branch like the other tutor-* repos.

The Indigo palm branch was actually created from a forked repo: upgrade to palm by gondaljutt · Pull Request #43 · overhangio/tutor-indigo · GitHub

pip install --user --upgrade --editable git+https://github.com/gondaljutt/tutor-indigo.git@jalal/palm#egg=tutor-indigo

@regis did you change tutor-forum so that there’s not a palm branch anymore (like with indigo)?

user@uVM:~$ git clone https://github.com/overhangio/tutor-forum.git
Cloning into 'tutor-forum'...
remote: Enumerating objects: 256, done.
remote: Counting objects: 100% (180/180), done.
remote: Compressing objects: 100% (101/101), done.
remote: Total 256 (delta 94), reused 139 (delta 68), pack-reused 76
Receiving objects: 100% (256/256), 46.07 KiB | 476.00 KiB/s, done.
Resolving deltas: 100% (105/105), done.
user@uVM:~$ cd tutor-forum/
user@uVM:~/tutor-forum$ git checkout palm
error: pathspec 'palm' did not match any file(s) known to git

This because it’s now released, i.e you should be install them through pip with version 16 refs tutor-forum · PyPI and tutor · PyPI

1 Like

I tried a bunch of things mentioned here, but still do not see indigo showing up in list:

~/.local/share/tutor-plugins/src/tutor-indigo$ tutor plugins list
⚠️  Failed to enable plugin 'indigo': plugin 'indigo' is not installed.
NAME     	STATUS   	VERSION
android  	installed	16.0.0
discovery	installed	16.0.0
ecommerce	installed	16.0.0
forum    	installed	16.0.0
license  	installed	16.0.0
mfe      	✅ enabled	16.0.0
notes    	✅ enabled	16.0.0
webui    	installed	16.0.0
xqueue   	installed	16.0.0
~/.local/share/tutor-plugins/src/tutor-indigo$ docker version
Client:
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.1
 Git commit:        20.10.21-0ubuntu1~20.04.2
 Built:             Thu Apr 27 05:56:19 2023
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.1
  Git commit:       20.10.21-0ubuntu1~20.04.2
  Built:            Thu Apr 27 05:37:01 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.9-0ubuntu1~20.04.6
  GitCommit:        
 runc:
  Version:          1.1.4-0ubuntu1~20.04.3
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        

:~/.local/share/tutor-plugins/src/tutor-indigo$ docker compose version
Docker Compose version v2.18.1

I am having the same issue in local launch and getting the following error

docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local stop
unknown shorthand flag: 'f' in -f
See 'docker --help'.

It seems docker compose should be replaced by docker-compose in the new docker env.

I had the same issue as you until I realised that I had an older version of docker. New version uses a compose plugin so “docker-compose” is not the correct program to use anymore. Make sure you install latest version of docker as posted in @ABC’s solution above.

1 Like

please help. I’m running through the same issue. I’ve tried posting this several times but no one seems to notice :pensive:
I have upgraded my native koa to native lilac to tutor maple to tutor nutmeg. Everything seems to be working fine until there’s an error with the openedx platform affecting tutor nutmeg. So I’ve upgraded it into tutor olive then to tutor palm.

When running the command tutor local upgrade --from=olive, I encounter the same error. :pensive::pensive::pensive:

============================================
        Upgrading MongoDb to v4.2.17
============================================
Environment generated in /home/ubuntu/.local/share/tutor/env
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/dev/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.override.yml --project-name tutor_dev stop
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.override.yml --project-name tutor_local up --remove-orphans -d mongodb
[+] Running 2/1
 ✔ Container tutor_local-permissions-1  Started                            0.0s
 ✔ Container tutor_local-mongodb-1      Started                            0.0s
Waiting for mongodb to boot...
docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.override.yml --project-name tutor_local exec mongodb mongo --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" })'
Error response from daemon: Container 0f755ecda4c4680f63d909db8b827872055f761ba2a8fbe5568349aa1bd06b2d is restarting, wait until the container is running
Error: Command failed with status 1: docker compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.prod.yml -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.override.yml --project-name tutor_local exec mongodb mongo --eval db.adminCommand({ setFeatureCompatibilityVersion: "4.2" })

I cannot properly launch tutor local launch after this. It’s not working properly.

tutor local logs --tail=100 mongodb

mongodb-1  | 2024-06-07T14:16:01.884+0000 F  CONTROL  [initandlisten] ** IMPORTANT: UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document (ERROR: BadValue: Invalid value for version, found 4.4, expected '4.2' or '4.0'. Contents of featureCompatibilityVersion document in admin.system.version: { _id: "featureCompatibilityVersion", version: "4.4" }. See https://docs.mongodb.com/manual/release-notes/4.2-compatibility/#feature-compatibility.). If the current featureCompatibilityVersion is below 4.0, see the documentation on upgrading at https://docs.mongodb.com/manual/release-notes/4.2/#upgrade-procedures.
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  REPL     [initandlisten] Stepping down the ReplicationCoordinator for shutdown, waitTime: 10000ms
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  SHARDING [initandlisten] Shutting down the WaitForMajorityService
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  NETWORK  [initandlisten] shutdown: going to close listening sockets...
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  NETWORK  [initandlisten] Shutting down the global connection pool
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down the FlowControlTicketholder
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  -        [initandlisten] Stopping further Flow Control ticket acquisitions.
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down the PeriodicThreadToAbortExpiredTransactions
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down the PeriodicThreadToDecreaseSnapshotHistoryIfNotNeeded
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  REPL     [initandlisten] Shutting down the ReplicationCoordinator
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  SHARDING [initandlisten] Shutting down the ShardingInitializationMongoD
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  REPL     [initandlisten] Enqueuing the ReplicationStateTransitionLock for shutdown
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  -        [initandlisten] Killing all operations for shutdown
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  COMMAND  [initandlisten] Shutting down all open transactions
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  REPL     [initandlisten] Acquiring the ReplicationStateTransitionLock for shutdown
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  INDEX    [initandlisten] Shutting down the IndexBuildsCoordinator
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  NETWORK  [initandlisten] Shutting down the ReplicaSetMonitor
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  CONTROL  [initandlisten] Shutting down free monitoring
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  FTDC     [initandlisten] Shutting down full-time data capture
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down the HealthLog
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down the storage engine
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Deregistering all the collections
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Timestamp monitor shutting down
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] WiredTigerKVEngine shutting down
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down session sweeper thread
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Finished shutting down session sweeper thread
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Shutting down checkpoint thread
mongodb-1  | 2024-06-07T14:16:01.884+0000 I  STORAGE  [initandlisten] Finished shutting down checkpoint thread
mongodb-1  | 2024-06-07T14:16:01.897+0000 I  STORAGE  [initandlisten] shutdown: removing fs lock...
mongodb-1  | 2024-06-07T14:16:01.897+0000 I  -        [initandlisten] Dropping the scope cache for shutdown
mongodb-1  | 2024-06-07T14:16:01.897+0000 I  CONTROL  [initandlisten] now exiting
mongodb-1  | 2024-06-07T14:16:01.897+0000 I  CONTROL  [initandlisten] shutting down with code:62

You can ignore this upgrade error. The olive->palm upgrade bumps the MongoDb feature compatibility version from 4.0 to 4.4, but it appears that you’ve already upgraded:

featureCompatibilityVersion document (ERROR: BadValue: Invalid value for version, found 4.4, expected '4.2' or '4.0'. Contents of featureCompatibilityVersion document in admin.system.version: { _id: "featureCompatibilityVersion", version: "4.4" }

The rest of the olive->palm upgrade happened before the MongoDb upgrade. Make sure that Tutor is in v16+ (Palm) and then run:

tutor config save
tutor local launch

After that you should be good to go, move along :slight_smile: