Short answer: if CasaOS suddenly shows “Failed to load apps” after a Docker update, check the Docker Engine API version before reinstalling CasaOS. Docker 29.0 raised the daemon's minimum API to v1.44, which broke older CasaOS App Management clients that still requested an older API. Docker 29.3 later lowered the minimum again to v1.40, so the right fix depends on the Docker build you are actually running.
Check the Docker version first
Run:
docker version
Look at the server version plus the API version fields. Docker's Docker API negotiation allows clients and daemons to agree on a common API version, but only within the versions the daemon still accepts.
That boundary changed in Docker 29. Docker 29.0 raised the minimum daemon API to v1.44. In Docker 29.3.0, the minimum was lowered to v1.40. The Docker 29 API floor is therefore version-dependent.
| Docker version | Minimum Engine API | What it means for CasaOS |
|---|---|---|
| 29.0.x–29.2.x | v1.44 | An older CasaOS App Management client can be rejected as too old. |
| 29.3.0+ | v1.40 | The original v1.44 floor is no longer the same blocker, so verify logs before applying an old workaround. |
Confirm that API mismatch is the real error
Do not assume every blank App Store is a Docker 29 compatibility issue. Check the service log:
journalctl -u casaos-app-management --no-pager -n 100
The key failure looks like this:
client version 1.43 is too old.
Minimum supported API version is 1.44
That message is strong evidence that the UI failure is downstream of Docker API compatibility rather than an App Store catalog problem. Multiple CasaOS reports reproduced the same symptom after Docker upgrades, including the original Docker update failure.
Why CasaOS can break while Docker itself still works
CasaOS does not replace Docker Engine. Its App Management service talks to Docker through the Engine API. Docker containers can still be running normally while the CasaOS UI loses the ability to query, create, or manage them.
That is why commands such as:
docker ps
docker images
may still work even when CasaOS says it cannot load apps. The Docker CLI and CasaOS App Management are separate API clients and do not necessarily request the same API version.
The broader relationship between CasaOS and Docker is explained in CasaOS Docker management, where CasaOS is used as the visual layer over Docker-based applications.
Fix older Docker 29 installs with an API override
For Docker 29 builds that still require API v1.44, one tested workaround is to lower the daemon's accepted minimum through systemd. The reported CasaOS compatibility fix uses:
sudo systemctl edit docker.service
Add:
[Service]
Environment=DOCKER_MIN_API_VERSION=1.24
Then restart Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
Verify the override:
systemctl show docker | grep DOCKER_MIN_API_VERSION
This is a compatibility override, not a reason to leave the server on an old application stack indefinitely. It deliberately allows older API clients to talk to the daemon.
Check whether the current installer already fixes it
CasaOS maintainers later reported that the installation script was updated to install a current Docker Engine and apply a Docker API compatibility override for newer versions. That maintainer update appears in the installer compatibility update.
If your CasaOS installation predates that change, rerunning the current official installer may be cleaner than maintaining a manual override forever. Back up important app data and custom configuration before changing an existing server.
When not to use the old workaround
If docker version shows Docker 29.3 or newer and the minimum API is already v1.40, do not blindly force DOCKER_MIN_API_VERSION=1.24. First inspect the CasaOS App Management log. A different error needs a different fix.
For example, DNS failures, broken registry access, corrupt app metadata, or a stopped CasaOS service can all produce an App Store that looks empty without being an API-version problem.
Verify CasaOS after the fix
After Docker restarts, check all three layers:
-
Docker:
docker psreturns normally. -
CasaOS service:
systemctl status casaos-app-managementis active and no longer logs an API mismatch. - Web UI: installed apps and the App Store load again.
If Docker works but CasaOS App Management is still failing, restart that service after Docker:
sudo systemctl restart casaos-app-management
For users comparing application stacks, the ZimaOS app platform shows the current one-click app model. If you want a compact x86 machine for Docker and CasaOS testing, ZimaBoard 2 officially lists CasaOS among its compatible operating systems.
FAQ
Does Docker 29 always break CasaOS?
No. Docker 29.0 raised the minimum Engine API to v1.44, but Docker 29.3.0 lowered it to v1.40. Check the exact Docker version and the CasaOS log before choosing a workaround.
Why are my containers still running?
The containers are managed by Docker Engine. CasaOS App Management is a separate client. Its API connection can fail while the daemon and existing containers continue to run.
Should I downgrade Docker?
Not automatically. The API override was a successful workaround for affected Docker 29 installations, and later Docker releases changed the minimum API again. Downgrading is only one option when compatibility cannot be restored cleanly.
What log proves this is the same issue?
Look for an error saying the Docker client API is too old and that the daemon requires API v1.44 or newer. Without that evidence, keep troubleshooting instead of assuming the Docker 29 issue.
