404 World not found / duplicate key error (Can't upload my World)

Hi there!

I’m having a bit of a Problem uploading my World for testing.

When I upload it it tells me its succesful, but its not really. If I go to Manage Worlds after publishing I get the following Error Message:

404 : World wrld_5c093d2f-3ed2-48d6-a25d-0b81dcb2ab60 not found

Retracing my steps:

I uploaded the World once before, and it showed up in the my Worlds tabs or whatever it is called. I just couldnt join it in VrChat, got immediatly booted.

So I figured I probably just forgot to rewrite the code I have on my particle systems to an Udon sharp script, and sure enough, I forgot.

So I deleted the world upload in the Content Manager tab and ran through all the particle codes I had and created a U# script for them.

Process of the Copy/Rewrite

(copied the old C# script in Visual Studio, created a U# script, pasted it in there and ofc I didnt delete/overwrite the using UdonSharp; using VRC.SDKBase;
using VRC.Udon; parts. Also I renamed the Monobehavior to UdonSharpBehaviour and altered some parts that apperently aren’t supported by the Udon Compiler yet. Everything works fine and runs at solid 90fps in Unity testing.)

after I was done with that I tried to upload it again and got the 404 message in the Manage Worlds tab.

I remember stumbling upon some information about the VRC World Seeds somewhere and it seems to me like it has someting to do with that? I dont recall tampering with anything regarding that, but maybe I accidentally delted something somewhere thats referencing to it?

Or is it because I deleted my old version in the Content Manager and tried to upload it again?

I’m not really sure.

Help would be much appreciated :slight_smile:

Update:
So the World Seed is located in the Pipeline Manager Script in the VRCWorld Prefab.
Its matching with the Error Code. I’m just not quite sure what to do now

The Console gives me the following Error Message:

MongoError˸ E11000 duplicate key error collection˸ vrchat․World index˸ id dup key˸ { ˸ "wrld_5c093d2f-3ed2-48d6-a25d-0b81dcb2ab60" }
UnityEngine.Debug:LogError(Object)
VRCSDK2.<>c__DisplayClass46_0:b__1(ApiContainer) (at Assets/VRCSDK/Dependencies/VRChat/Scripts/RuntimeWorldCreation.cs:592)
VRC.Core.APIResponseHandler:RetryRequest(Int32, HTTPRequest, HTTPResponse, ApiContainer, Int32, Boolean, String)
VRC.Core.APIResponseHandler:HandleReponse(Int32, HTTPRequest, HTTPResponse, ApiContainer, Int32, Boolean)
VRC.Core.<>c__DisplayClass2_0:b__0(HTTPRequest, HTTPResponse)
VRC.Core.BestHTTP.HTTPRequest:CallCallback()
VRC.Core.BestHTTP.ConnectionBase:HandleCallback()
VRC.Core.BestHTTP.HTTPManager:OnUpdate()
VRC.Core.BestHTTP.HTTPUpdateDelegator:Update()

So if I read that correctly, I have a duplicated (upload? World?) key… Does that mean I have to generate a new one somehow…? I feel like I’m missing something obvious

Okay, I think I got it.

So it seems like the VRCWold Prefab creates a key/seed whatever of your world after building.

My guess would be that even though I deleted my world from the Content Manager the VrChat Servers still think my World is up or something. (Thats just a guess tho, idk)

So when I tried to upload it again it detected duplicate keys.

My Solution was to just delete my old VRCWorld Prefab and get a new one in there.
The Upload seems to be actually sucessful this time.

I hope I dont run into more errors because of this.

For future reference:

  1. Don’t use the world prefab it has issues and is mostly there as an example.
    Instead what you should do is creating an empty game object and attaching the VRC Scene descriptor script to that. (this’ll automatically include the pipeline manager as well)

  2. The reason you’re getting the issue is because VRC created unique keys for each world. These have to be unique, if a world gets deleted, that key doesn’t get released. So to fix that all you have to do is reset the pipeline manager so it’ll create a new key when it’s run.

1 Like

I guess I should open up another thread for this, but its also kind of a follow up I think ^^’

I get booted again after joining the world.

Log gives me these erros

2021.03.26 20:49:46 Error - World VRCW File (wrld_eb7a8a3e-3243-4fc3-8082-65fb22754bde) was not uploaded to this ApiWorld (wrld_4db7b674-4983-4edb-9069-d4cbd21337ad)

2021.03.26 20:49:46 Error - [Always] Error Downloading or Instantiating Custom Scene - https://api.vrchat.cloud/api/1/file/file_9bbfab5e-ccca-4532-866d-dfffe50b8a6b/1/file - BlueprintIDMismatch

2021.03.26 20:49:46 Error - [Behaviour] Instantiating the scene failed.

So I have mismatching IDs now…?
I’ll delete the World Prefab tomorrow and try it with the scripts ^^’

I hope I can test my world after that.

I did quite a lot of work for it.

Didnt expect to run into so much trouble trying to upload it, since everything seems to be working fine, the console in unity is now clean aswell.

Edit:
Oh yeah and Thanks for taking the Time to reply to so many people here, Luna, you’re very helpful :slight_smile:

Hmm, it might be grabbing a cached version, try deleting the cache in LocalLow

1 Like

mmh, unfortunatly didnt fix it :frowning:
I’ll look into it a bit more tomorrow, there has to be some solution.

Alright, I finally had some time for tinkering.

I removed the VRCWorld Prefab and added the VRC Scene Descriptor Script to an empty Gameobject, aswell as the VRC World Settings.

I simply copied the ID from the error message and pasted it in the Pipeline Manager.

I can finally test it in VRchat with my friends.
I’m not sure how they got mixed up, but its working now.