Search Unity

Question New build pointing to content already uploaded on CCD

Discussion in 'Unity Cloud Content Delivery' started by Nimdanet, Oct 23, 2021.

  1. Nimdanet

    Nimdanet

    Joined:
    Jan 19, 2013
    Posts:
    38
    Hi!

    I have a live version of my game using Addressables and CCD. It's working.

    I'm generating a new build for the QA team to test through Google Play's Internal Testing. I don't know what I did wrong here but on this version Addressables don't work. It shows me the list of items to download (via Addressables.LoadResourceLocationsAsync(label)) but the download size is always 0 (via Addressables.GetDownloadSizeAsync(IList<>)). This is the same thing I'm doing on the live version.

    I want to generate a new Android build poiting out to the same release on CCD as the live version. How can I make this?

    Thanks in advance.

    Update: I tried to build again my addressables without uploading it to CCD. Now the download size is the correct value but when it tried to download I have an error:

    RemoteProviderException : Unable to load asset bundle from : (path_to_CCD)
    UnityWebRequest result : HTTP/1.1.404 Not Found


    So I think I screwed eveything up right now. How can I roll back to point to the CCD content? If I upload this generated assets I would broke the live version so it's not an option.

    Update2: Maybe the way is to work with the "Latest" badge and change the path. I'll not update CCD content anymore anyway so Latest badge is fine for me. Unfortunately I could not make that work as well. I tried making a new android build without building new content but it was still searching by entry and not by badge. After I built new content (without uploading it to CCD) but no success as well. Here is the new error:

    RemoteProviderException : Unable to load asset bundle from : [URL]https://89b6a3a9-1704-40b9-bed0-cd9467732859.client-api.unity3dusercontent.com/client_api/v1/buckets/0c2f1da2-4bb5-4ff3-8516-d1383b6c4f4c/release_by_badge/latest/entry_by_path/content/?path=/halloween_assets_all_ce547577a27c2f14fd575ae163e290e5.bundle[/URL]
    UnityWebRequest result : HTTP/1.1 404 Not Found
    ResponseCode : 404, Method : GET
    url : [URL]https://89b6a3a9-1704-40b9-bed0-cd9467732859.client-api.unity3dusercontent.com/client_api/v1/buckets/0c2f1da2-4bb5-4ff3-8516-d1383b6c4f4c/release_by_badge/latest/entry_by_path/content/?path=/halloween_assets_all_ce547577a27c2f14fd575ae163e290e5.bundle[/URL]
    UnityEngine.AsyncOperation:InvokeCompletionEvent()


    I can't go any further. Any help would be appreciated
     
    Last edited: Oct 23, 2021
  2. Nimdanet

    Nimdanet

    Joined:
    Jan 19, 2013
    Posts:
    38
    Ok! No progress so far. I'd really appreaciate some help here. From the errors I see it's trying to download halloween_assets_all_ce547577a27c2f14fd575ae163e290e5.bundle but the correct content on CCD is halloween_assets_all_ee66bbc5ad05981099250e954ea62fdf.bundle
     
  3. ryan_ngo

    ryan_ngo

    Unity Technologies

    Joined:
    Feb 2, 2021
    Posts:
    35
    Hi @Nimdanet! As far as I know, unfortunately, I don't recall any way to specifically roll back to a specific version of in Addressables unless you modify your catalog.json or transform your internalId. Though there is good news and a couple of things you could try. Since CCD manages your content versions, there's actually no need to have the filehash within your bundle name. You can disable this via the group inspector window under "Advanced Options" > "Bundle Naming Mode". You can set it to "Filename". What this allows you to do is call your assets only by the file name (e.g. halloween_assets_all.bundle). This avoids all the hassle of matching your filehash every single time for content updates. This is also most likely the reason why you're getting a 404. You've built a new version of the assets without uploading them so your build is trying to reference the newly created assets when they aren't in the CCD bucket. I don't entirely know how you've set up your buckets but a recommendation we give is to have a bucket per environment per platform.

    If you just want to point a build to a specific release of assets however, this could be achieved by manually modifying the catalog.json references to the old assets in m_InternalIds. There's also a way to do this programmatically, I believe as well, using TransformInternalId.

    I hope this helps you get to where you're going. If you need more guidance, please let us know!
     
    fdunity-08 and ggzerosum like this.