Local gitlab-runner with submodules causing error

I have a project and a submodule referenced at the root of the project. My .gitmodules:

[submodule "utilities"]
  path = utilities
  url = ../utilities

and a .gitlab-ci.yml in project root.

I have gitlab-runner installed locally (MacOS) and with run it like this:

$ gitlab-runner exec shell build_image_job

and I get this:

Runtime platform                                    arch=amd64 os=darwin pid=15501 revision=05161b14 version=12.4.1
Running with gitlab-runner 12.4.1 (05161b14)
Using Shell executor...
Running on UKMACW02.local...
Fetching changes...
Initialized empty Git repository in /Users/me/Documents/dev/myproject/builds/0/project-0/.git/
Created fresh repository.
From /Users/me/Documents/dev/myproject
 * [new branch]      mybranch -> origin/mybranch
 * [new branch]      develop             -> origin/develop
Checking out ba99bf3d as mybranch...
Updating/initializing submodules recursively...
Submodule 'utilities' (/Users/me/Documents/dev/utilities) registered for path 'utilities'
Cloning into '/Users/me/Documents/dev/myproject/builds/0/project-0/utilities'...
done.
error: Server does not allow request for unadvertised object fdda41433b074612d2dd467b83c26546df0143e6
Fetched in submodule path 'utilities', but it did not contain fdda41433b074612d2dd467b83c26546df0143e6. Direct fetching of that commit failed.
ERROR: Job failed: exit status 1
FATAL: exit status 1         

if I navigate into the local build folder and try to update submodule, I get the same issue:

$ cd builds/0/project-0
$ git submodule update --recursive
error: Server does not allow request for unadvertised object fdda41433b074612d2dd467b83c26546df0143e6
Fetched in submodule path 'utilities', but it did not contain fdda41433b074612d2dd467b83c26546df0143e6. Direct fetching of that commit failed.