Place publishing API seemingly incorrectly claims place isn't part of universe

Trying to use the open cloud API to publish an .rbxl file. Used a curl command to test the API after getting strange results with community tool rbxcloud.

Command:

curl.exe --verbose --location POST 'https://apis.roblox.com/universes/v1/[game id]/places/[place id]/versions?versionType=Published' --header 'x-api-key: [api key]' --header 'Content-Type: application/octet-stream' --data-binary '@game.rbxl'

(For my privacy, game id, place id, and API key are redacted. However, I have checked each of them numerous times from numerous sources on the website and in studio, and can guarantee that they are correct.)

Output:

*   Trying 128.116.101.4:443...
* Connected to apis.roblox.com (128.116.101.4) port 443 (#1)
* schannel: disabled automatic use of client certificate
* ALPN: offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> POST /universes/v1/[universe id]/places/[place id]/versions?versionType=Published HTTP/1.1
> Host: apis.roblox.com
> User-Agent: curl/8.0.1
> Accept: */*
> x-api-key: [api key]
> Content-Type: application/octet-stream
> Content-Length: 848077
>
* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* We are completely uploaded and fine
< HTTP/1.1 409 Conflict
< content-length: 140
< content-type: application/json; charset=utf-8
< date: Mon, 16 Oct 2023 17:59:11 GMT
< server: envoy
< strict-transport-security: max-age=3600
< x-envoy-upstream-service-time: 261
< x-roblox-region: us-central
< x-roblox-edge: ord2
< report-to: {"group":"network-errors","max_age":604800,"endpoints":[{"url":"https://ncs.roblox.com/upload"}]}
< nel: {"report_to":"network-errors","max_age":604800,"success_fraction":0.001,"failure_fraction":1}
<
{"code":"Conflict","message":"Save failed. Server is busy and unable to process your upload request. Please try again in a couple minutes."}* Connection #1 to host apis.roblox.com left intact

According to the documentation, a 409 error means that the place is not part of the universe. I guarantee that the IDs are correct, the API key is correct, and that the API key has the correct permissions. Using rbxcloud instead of a direct curl command also results in a “place not part of universe” error.

Expected behavior

This should just work. The IDs are correct.

1 Like

Found the culprit: was trying to publish to a place with Team Create on. That you cannot do this should be documented somewhere.

1 Like

Hi!

To clarify, this API does work with places that have TC enabled. However it does respond with “Conflict” when there is an active TC session running to prevent you from accidently trampling your changes.

We will update our official documentation to make this more clear moving forward.

3 Likes