Find your content:

Search form

You are here

Deployment Issue: "change set is not currently available" - How long does it take?

 
Share

While i am uploading the objects via Changesets in production it showing an error is

This change set is not currently available. Recently uploaded change sets may take up to 30 minutes to be available for deployment. Please wait 30 minutes and try deploying your change set again.


Attribution to: Sathya

Possible Suggestion/Solution #1

There are a few relevant Ideas. One way to maybe make salesforce fix this issue is to vote for them.

  1. Change Sets STILL take up to 30 minutes to be available

    Change Sets STILL take up to 30 minutes to be available

    Even though this was supposed to be available in 2013 its 2017 and I still see messages that say my changeset will not be avaiavle for up to 30 minutes.

    This says it was done. But it wasnt. Or at least not that I have seen. https://success.salesforce.com/apex/ideaView?id=08730000000IyYKAA0

  2. The above Idea also references Make change set upload real time. The Idea detail says it was delivered in 2013, but perhaps they broke it again since.

    Make change set upload real time

    Change Set Unavailable
    This change set is not currently available. Recently uploaded change sets may take up to 30 minutes to be available for deployment. Please wait 30 minutes and try deploying your change set again.

    The above pretty much says it all. "30 minutes" is an outrageous time to wait to deploy code. Currently you can an email when the set has been pushed to the org, but this email that says "hey, it's ready" isn't really the reality of it. If you follow that email and go to try and deploy, you still need to wait a few minutes. This makes Eclipse still faster at deploying code, by leaps and bounds, but Change Sets are better for grouping objects to deploy, so there's no real winner.

  3. There's another idea requesting that the mail is send only when it's actually ready: Deploy: Outbound change sets: Please send notification email when deployment IS

    Deploy: Outbound change sets: Please send notification email when deployment IS

    When using the outbound change set tool to send updates to our production org we recieve an email notification when the change set is uploaded. This is useless information since it fools you to think that you can deploy the objects.

    If you click on the "change sets awaiting deployments"-link you will get a "CHANGE SET UNAVAILABLE" message.

    It even says in your helptext that the uploaded material could be unavailble up to 30 minutes.

    >> Please send the notification email to be sent when it IS available for deploment. <<

    And... thank your for providing this functionality since this is a really nice way of moving objects/code from the sandbox to any other organization. =)

    Change Set Unavailable


Attribution to: Legolas

Possible Suggestion/Solution #2

I know this isn't an answer but I made some code that checks a changeset to see if it's ready. I frustratingly wrote it in the time it took waiting for large changesets, so it's rudimentary and could definitely be improved.

Simply copy the URL from the browser of the Unavailable Changeset and it alerts you when it's ready as well as opens it in a new window. Enjoy!

<apex:page controller="ChangesetCheckerController">

<head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<html>
<h3> Enter Change Set URL below</h3>
<div id="paraContainer" style="display:none">
    <p id="para">
        Checking on the changeset. Please wait...
    </p>
</div>
<form>
    <input id="urlInput" />
    <input id="submitbtn" type="button" value="Check Now" />
</form>
<script type="text/javascript">
    $("#submitbtn").click(function() {
        $("#paraContainer").css("display", "inline");
        checkChg();
    });

    function checkChg() 
    {
        var newURL = $("#urlInput").val();
        try 
        {
            Visualforce.remoting.Manager.invokeAction
            (
                '{!$RemoteAction.ChangesetCheckerController.checkChg}',
                newURL,
                function(result, event) 
                {
                    var foundin = '';
                    if (event.status)
                    {
                        console.log('success');
                        console.log(result);
                        $("#para").html(result);
                        foundin = $('p:contains("Change Set Unavailable")');
                        if (result == '') 
                        {
                            check();
                        }
                        else if (foundin.length == 0) 
                        {
                            foundin = $('p:contains("PackageUnavailableException")');
                            if (foundin.length == 0) 
                            {
                                 $("#para").empty();
                                alert('Change Set Ready');
                                window.open(newURL, "_blank");
                            } 
                            else 
                            {
                               check();
                            }
                        }
                    } 
                    else if (event.type === 'exception') 
                    {
                        console.log(event.message + " " + event.where);
                    } 
                    else 
                    {
                        console.log(event.message);
                    }
                }, 
                {
                    escape: true
                }
            );
        } 
        catch (err) 
        {
           check();
        }
    }
    function check()
    {
        $("#para").text("Will check in 2 seconds again.. waiting..");
        setTimeout(function() { 
            $("#para").text("Checking on the changeset. Please wait...");
            checkChg();
        }, 2000);
    }
</script>

</html>

public class ChangesetCheckerController
{
@RemoteAction
public static String checkChg(String url)   
{
    String html = '';
    try
    {
        PageReference page = new PageReference(url);
        Blob b = page.getContent();
        html = String.valueof(b);
        system.debug(html);
    }
    catch(Exception e)
    {
    }
    return html;
    }
}

Attribution to: See-Jay

Possible Suggestion/Solution #3

Changesets take a while before they are available for deployment. Although the message says 30 minutes, I've known it take longer.


Attribution to: Doug B

Possible Suggestion/Solution #4

This is not an error , you need to wait. It sometimes takes time for change sets to appear in Production.


Attribution to: Sagar Pareek

Possible Suggestion/Solution #5

This is normal for change sets (larger change sets can take longer to upload). However you can look into the following alternatives if you don't like using change sets which can be very slow:

Copado Deployer (AppExchange App) - https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B3dgGEAR

This is a tool that can be used for free to perform deployments of metadata, data, users (with related information), perform Git backups and automated Apex tests and much more which you cannot do with change sets.

Eclipse SDK - Free but time consuming, with very poor error handling.

ANT - Free but time consuming to setup and select the metadata you want.


Attribution to: Philipp Rackwitz
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/33562

My Block Status

My Block Content