Unable to publish a project to GroupShare usign FileBasedProject.PublishProject

While building a tool to automate the creation and publishing of projects to GroupShare, I've found that I'm unable to publish projects to GroupShare.

The process first of all creates an organisation to which it will upload the project; then it does the project upload.

    var orgId = await CreateGroupShareOrg(order.Id, progress);

    Log.Info($"{nameof(UploadPackageToGroupShare)}: organisation \"{order.Id}\" created on GroupShare.");

    project.PublishProject(
        new Uri(@"groupshare-srvr.our-website.com/"),
        false,
        "--username--",
        "--password--",
        $"/Projects/{order.Id}",
        (obj, evt) =>
        {
            Log.Info($"{nameof(UploadPackageToGroupShare)}: {evt.StatusMessage} {evt.PercentComplete}% complete");
        });

You can see that the goings-on are being logged, and from this I can tell that the organisation is being created - I can verify this by looking in the SDLSystem DB and finding sts.ResourceGroup.resourceGroupPath matching the new organisation's name, and the corresponding resourceGroupGuid matching the returned GUID. So the call to CreateGroupShareOrg is operating as expected.

But the call to FileBasedProject.PublishProject is unsuccessful - it returns a 404, and I can't figure out why. I've tried variations of the URL (with and without "/groupshare" on the end of the URL, and with/without adding ":80" on the end).

Also, the same URL and login details are used in CreateGroupShareOrg, although that method goes via GroupShareKit.

The event in the final parameter always records simply

    "UploadPackageToGroupShare:  0% complete"

We've had this working in the past and I've seen it record maybe 10 entries, each with an incrementing percentage. As far as I'm aware, none of this code has been changed since it was last seen working.

Here's a Fiddler trace which might explain something that I've missed. Row #9 is the request to publish the project.

#ResultProtocolHostURLBodyContent-TypeRequestMethod
2 200 HTTPS www.our-website.com /filedownloads/file/619596/TEST-UPLOAD.txt 135 application/octet-stream GET
3 200 HTTP groupshare-srvr.our-website.com /management/api/1.0/organizations?flatten=true 1,967 application/json; charset=utf-8 GET
4 200 HTTP Tunnel to www.our-website.com:443 0 CONNECT
5 200 HTTPS www.our-website.com /api/v1/Order/termbases/103054/Company%20Website 0 PUT
6 200 HTTP groupshare-srvr.our-website.com /management/api/1.0/organizations?flatten=true 1,967 application/json; charset=utf-8 GET
7 200 HTTP groupshare-srvr.our-website.com /management/api/1.0/organizations?flatten=true 1,967 application/json; charset=utf-8 GET
8 200 HTTP groupshare-srvr.our-website.com /management/api/1.0/organizations 38 application/json; charset=utf-8 POST
9 404 HTTP groupshare-srvr.our-website.com /platform/sdl/discovery.svc 0   POST
10 200 HTTP Tunnel to www.our-website.com:443 0 CONNECT
11 204 HTTPS www.our-website.com /api/v1/admin/package/id/103054/1 0 GET
14 200 HTTP Tunnel to www.our-website.com:443 0 CONNECT
15 200 HTTPS www.our-website.com /api/v1/admin/package/report/103054/ 0 POST

One last point: I am able to create and upload a project usign Trados; the only difference is that Trados doesn't create the organisation as part of the process.

So what's going wrong? Why am I unable to upload/publish a project?