Why does only one GitHub self-hosted runner accept the new job?

I have three Ubuntu Pcs, which have their own GitHub self-hosted runner. Two of the runners (on PC 1, and PC 2) are labeled test, the third (PC 3) is labeled production. In addition, all runners are labelled self-hosted

On GitHub, I have three branches, dev, test and production. The goal is when I merge a pull request onto test or production branches, all the runners with the targeted label will pull the new version, then build and compose Docker image/ container.

This procedure works on PC 1 and PC 3, merging on test and production branch respectively. However, the runner on PC 2 remains idle when PC 1 runs the “test job”, immediately after merging the test pull request.

I have double checked that the runners on PC 1 and PC2 has the same labels. What am I doing wrong, or not understanding properly? Do I have to create a workflow file for each PC?

Here is the workflow file test.yml

name: Test

on:
  # Triggers the workflow on push to test branch.
  push:
    branches: [ test ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

  build:
    runs-on: [self-hosted, test]

      - uses: actions/checkout@v2
        with:
          ref: test
      
      # Pulling latest code from Github
      - name: Pull, build, compose up
        run: |
            docker build -f Dockerfile -t test-1 .
            docker-compose up -d