CI clones one submodule but not the other one

Problem to solve

I’m trying to get a pipeline done in a project with two submodules: script-worker and fonts. The former is cloned without any problems but the other one fails. Here is the message:

Running with gitlab-runner 16.9.0 (656c1943)
  on my.runner.server runner_id, system ID: system_id
Preparing the "docker" executor
Using Docker executor with image my.gitlab.instance:5050/build_container:latest ...
Authenticating with credentials from /root/.docker/config.json
Pulling docker image my.gitlab.instance:5050/build_container:latest ...
Using docker image sha256:fc0db4dc3d482994456df64c14c081c03ce2f045610ed394c72de17da96b9e86 for my.gitlab.instance:5050/build_container:latest with digest my.gitlab.instance:5050/team/build_container@sha256:aaa4c64f25e9e9dcff170342442800002add222c4e29059ad95d1cf6e6d1a4e5 ...
Preparing environment
Running on runner-runner_id-project-27-concurrent-0 via runner...
Getting source from Git repository
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/project/.git/
Checking out 475b6d16 as detached HEAD (ref is refs/merge-requests/33/head)...
Updating/initializing submodules recursively with git depth set to 20...
Synchronizing submodule url for 'modules/fonts'
Synchronizing submodule url for 'modules/script-worker'
Entering 'modules/script-worker'
Entering 'modules/script-worker'
HEAD is now at 79a62d2 :twisted_rightwards_arrows: Merge branch 'develop' into 'master'
Cloning into '/builds/project/modules/fonts'...
error: cannot run ssh: No such file or directory
fatal: unable to fork
fatal: clone of 'git@my.gitlab.instance:team/fonts.git' into submodule path '/builds/project/modules/fonts' failed
Failed to clone 'modules/fonts'. Retry scheduled
Cloning into '/builds/project/modules/fonts'...
error: cannot run ssh: No such file or directory
fatal: unable to fork
fatal: clone of 'git@my.gitlab.instance:team/fonts.git' into submodule path '/builds/project/modules/fonts' failed
Failed to clone 'modules/fonts' a second time, aborting

Steps to reproduce

I checked .gitmodules file, both submodules are configured the same:

[submodule "modules/script-worker"]
	path = modules/script-worker
	url = git@my.gitlab.instance:team/script-worker.git
[submodule "modules/fonts"]
	path = modules/fonts
	url = git@my.gitlab.instance:team/fonts.git

I checked both submodules’ projects, they are configured the same

Configuration

stages:
  - audit

image: my.gitlab.instance:5050/build_container:latest

variables:
  GIT_SUBMODULE_STRATEGY: recursive
  CARGO_HOME: ${CI_PROJECT_DIR}/.cargo

clippy:
  stage: audit
  allow_failure: true
  script:
    - $HOME/.cargo/bin/cargo clippy -- -D warnings

Versions

Please select whether options apply, and add the version information.

  • Self-managed
  • GitLab.com SaaS
  • Dedicated
  • Self-hosted Runners

Versions

  • GitLab (Web: /help or self-managed system information sudo gitlab-rake gitlab:env:info): 17.9.2
  • GitLab Runner, if self-hosted (Web /admin/runners or CLI gitlab-runner --version): 16.9.0