Hi Tony,
When the go-server clones a repository, it also updates the submodules present. The command that generates the error is git submodule update, which is the first time the go-server tries to use remote url for the submodule. So, the clone of the repository which has the submodule can work when the correct access rights are given but the access rights for the submodule itself may not be set. Could you please do the following on the Go server as the 'go' user to check that the correct access rights are given? You could use a temp folder within it to do so.
git clone --branch=<branch> <remote_url> <path_of_destination_directory>
cd <destination_directory>
git submodule init
git submodule sync
git submodule foreach --recursive git submodule sync
git submodule update