question

Jon avatar image
Jon asked

Temporary storage issue, please retry request

Failed to execute script /CloudScript/ExecuteEntityCloudScript: Temporary storage issue, please retry request

Saw some of these errors occur client side. What is the reason for this? None of our cloudscript has large request parameters (mostly just 1-2 primitives).

Is it possible to configure the client to auto retry these if it's not a terminal error? (Using unity playfab plugin)

3 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Seth Du avatar image Seth Du ♦ commented ·

Would you provide your title ID so that we can look into it? Otherwise, you may share corresponding code snippet.

Yes, you may catch the failure callback result of PlayFab for retry, there are plenty of workarounds, you may take this thread as an example (replace those UnityWebRequest part with PlayFab API).

0 Likes 0 ·
Jon avatar image Jon Seth Du ♦ commented ·

Yeah, we have implemented retry logic but I wonder if it the client has any smart retry as it would know the error code for fatal / retryable errors better. (Something similar in the Azure client libraries:

https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific )

--

The title is A040A - for the code

The call that is being made when the client get this error should be

handlers.login = function(args, context) {
    let playerEntity = getPlayerEntity(args, context);
    let playerData = getPlayerData(playerEntity, context);
    if (playerData == null) {
        playerData = createNewPlayer();
    }
    
    //update daily quests
    if (!playerData.hasOwnProperty("Dq") || shouldGetNewDailies(playerData)) {
        playerData.Dq = { Xp: 0, Q: []};
        playerData.Dq.D = getDateString();
        playerData.Dq.R = 0;

        for (const [key, value] of Object.entries(DailyQuests)) {
            playerData.Dq.Q.push(0);    
        }
    }
    
    if (checkDailyQuests("Login", 1, playerData)) {
        savePlayerData(playerEntity, playerData);
    }
    
    return {
        result: true,
        playerData: playerData,
    }
}

0 Likes 0 ·
Jon avatar image Jon Jon commented ·

(continued... reached 1200 character limit)

Basically it is a login script that will check if it's a new player. If it's a new player, we populate playerData with some starting info.

I don't notice it happen too often, but usually it's if the tester logs in a few times within the same minute. (Start game, close game, start game, close game, etc)

In any case, I was wondering what the cause for this error is and what we could do to minimize it. Thanks!

0 Likes 0 ·

1 Answer

·
Seth Du avatar image
Seth Du answered

Thanks for the feedback. Apologize for the late update. I have received feedback from the team that this issue can be an incident, which have been solved recently. Thansk for the understanding.

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.