Skip to content

[Bug] Matter 1.5 v2.14+fall2025 Raspberry Pi installation is not reproducible: APT dependencies, missing GHCR images, backend build failure, outdated nRF Util instructions #1075

Description

@code-overload42

Describe the bug

Summary

I am setting up the Matter Test Harness for Matter 1.5 on a Raspberry Pi, following the official Matter TH User Guide.

I encountered several issues during a fresh installation:

  1. Ubuntu dependencies could not be installed because noble-updates was not enabled.
  2. Both backend and frontend Docker images referenced by v2.14+fall2025 return manifest unknown from GHCR.
  3. Building the backend image locally fails because the Dockerfile installs npm@latest while using Node.js 20.
  4. Section 7.1 still documents installation of nrfutil using pip, while current nRF Util releases use a standalone executable.

These issues eventually leave only PostgreSQL and Traefik running, while the Test Harness UI returns a Traefik 404.


Environment

  • Matter version: Matter 1.5
  • Test Harness: v2.14+fall2025
  • Host: Raspberry Pi
  • Architecture: ARM64 / aarch64
  • OS: Ubuntu Server 24.04.x LTS

Repository state:

$ git describe --tags --always
v2.14+fall2025-tag-1-gd0d8f48

$ git -C backend rev-parse --short HEAD
e20beac

$ git -C frontend rev-parse --short HEAD
1acbec0

1. Ubuntu dependencies fail because noble-updates is missing

During installation of libgstreamer1.0-dev, APT failed because several installed runtime packages were newer than the corresponding available -dev packages:

libpcre2-dev : Depends: libpcre2-8-0 (= 10.42-4ubuntu2)
               but 10.42-4ubuntu2.1 is to be installed

libselinux1-dev : Depends: libselinux1 (= 3.5-2ubuntu2)
                  but 3.5-2ubuntu2.1 is to be installed

libzstd-dev : Depends: libzstd1 (= 1.5.5+dfsg2-2build1)
              but 1.5.5+dfsg2-2build1.1 is to be installed

zlib1g-dev : Depends: zlib1g (= 1:1.3.dfsg-3.1ubuntu2)
             but 1:1.3.dfsg-3.1ubuntu2.1 is to be installed

For example:

libpcre2-8-0:
  Installed: 10.42-4ubuntu2.1
  Candidate: 10.42-4ubuntu2.1

libpcre2-dev:
  Installed: (none)
  Candidate: 10.42-4ubuntu2

My Ubuntu sources contained:

Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports/
Suites: noble
Components: main restricted universe multiverse

Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports/
Suites: noble-security
Components: main restricted universe multiverse

There was no noble-updates.

Changing:

Suites: noble

to:

Suites: noble noble-updates

and running:

sudo apt update

resolved the dependency issue.

Suggested improvement

The installer could check that noble-updates is available before installing dependencies, or the prerequisite could be documented.


2. Matter 1.5 Docker images return manifest unknown

During installation, update-docker-images.sh attempted to download the Matter 1.5 backend image:

update-docker-images.sh: Downloading backend Docker image

Image ghcr.io/project-chip/csa-certification-tool-backend:e20beac Pulling

manifest unknown

Error response from daemon: manifest unknown

The frontend fails in the same way:

update-docker-images.sh: Downloading frontend Docker image

Image ghcr.io/project-chip/csa-certification-tool-frontend:1acbec0 Pulling

manifest unknown

Error response from daemon: manifest unknown

This can also be reproduced directly:

docker pull ghcr.io/project-chip/csa-certification-tool-backend:e20beac
docker pull ghcr.io/project-chip/csa-certification-tool-frontend:1acbec0

Both return:

Error response from daemon: manifest unknown

These are exactly the revisions referenced by the Matter 1.5 checkout:

backend:  e20beac
frontend: 1acbec0

After reboot, only these containers existed:

certification-tool-proxy-1
certification-tool-db-1

The backend and frontend containers were missing.

Traefik itself was listening correctly:

0.0.0.0:80->80/tcp
0.0.0.0:8090->8080/tcp

but:

curl -v http://localhost/

returned:

HTTP/1.1 404 Not Found

404 page not found

Running:

./scripts/start.sh

shows the actual failure:

*** Starting 'backend' docker container

Image ghcr.io/project-chip/csa-certification-tool-backend:e20beac manifest unknown

Error response from daemon:
No such image:
ghcr.io/project-chip/csa-certification-tool-backend:e20beac

### Exit with Error

Unable to start backend container.
Check if the tag is correct in the docker compose file.
You can also build the image manually using this command:
'./backend/scripts/build-docker-image.sh'

Suggested improvement

Please check whether the Docker images for v2.14+fall2025 can be restored/published in GHCR.

It would also be useful for the installation to fail clearly when required backend/frontend images cannot be downloaded instead of reaching the reboot/UI stage with only half of the stack installed.


3. Local backend build fails because of npm@latest

Since the prebuilt images are unavailable, I tried the suggested local build fallback.

The backend Dockerfile installs Node.js 20:

RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
RUN apt-get install -y nodejs

but later executes:

RUN npm install -g npm@latest

At the time of testing, npm@latest resolves to npm 12.0.2, which no longer supports Node.js 20.

The Docker build fails with:

=> ERROR [18/23] RUN npm install -g npm@latest

npm error code EBADENGINE
npm error engine Unsupported engine

npm error engine Not compatible with your version of node/npm: npm@12.0.2

npm error notsup Required:
{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"}

npm error notsup Actual:
{"npm":"10.8.2","node":"v20.20.2"}

So the suggested fallback:

./backend/scripts/build-docker-image.sh

is no longer reproducible from the Matter 1.5 release.

The same Dockerfile also contains other unpinned dependencies such as:

cspell@latest

which may produce similar compatibility problems over time.

Suggested improvement

Please pin the npm/cspell versions required by this historical release rather than using @latest.

Historical Test Harness releases should ideally remain reproducible using the dependency versions they were originally tested with.


4. nRF Util instructions appear outdated

Section 7.1 currently instructs users to run:

python3 -m pip install -U nrfutil
nrfutil install nrf5sdk-tools

Current nRF Util releases use a standalone executable rather than installation through pip.

Suggested improvement

Please update Section 7.1 with the current Nordic nRF Util installation procedure.

It would also help to clarify that the RCP dongle can be flashed from the user's Mac/PC before connecting it to the Raspberry Pi running the Test Harness.


Expected behavior

Following the documented Matter 1.5 Raspberry Pi installation should result in all four services running:

certification-tool-db-1        Up
certification-tool-proxy-1     Up
certification-tool-backend-1   Up
certification-tool-frontend-1  Up

The Test Harness UI should then be reachable at:

http://<Raspberry-Pi-IP>

If the prebuilt images are unavailable, the documented local build fallback should also remain reproducible.


Actual behavior

The current installation path is effectively:

Ubuntu dependency installation
        ↓
missing noble-updates
        ↓
manual APT source fix
        ↓
backend/frontend image pull
        ↓
manifest unknown
        ↓
only db + proxy start
        ↓
TH UI returns Traefik 404
        ↓
local backend image build
        ↓
npm@latest incompatible with Node.js 20

This currently makes it difficult to reproduce the Matter 1.5 v2.14+fall2025 Test Harness environment from the documented installation procedure.

Steps to reproduce the behavior

No response

Expected behavior

No response

Log files

No response

PICS file

No response

Screenshots

No response

Environment

No response

Additional Information

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions