Maximum allowed computation time was exceeded

Hello,

we have a private model embeded in our application which is used extensively. During this period from 10:00 a.m. to 6:30 p.m. approximately, our users repeatedly experience this type of error in attachment 2020-10-28_19-11-29 except that in my application no error is caught and this results in an empty scene or with missing geometries, users are forced to refresh the browser page (this leads to the loss and creation of many paid shapediver sessions). On other less used models this error never occurs.
This renders our app unusable and we lose users who are frustrated. Can you look what it is, this is model pcl-v1-6-5-sd01

Regards.

Your model is a great great example of a paramteric online application. Since it has lot of parameters and features, the computation time is around 10 seconds which is the limit of your account right now. PRO customers use the ShapeDiver shared system where performance fluctuations can occur and computation time might exceed for models that are near the limit as it happens in your case. Read more about computation time in here.

There are two ways to solve this:

  • You can either optimise your model to decrease the processing time and stay within safe margins of your time allowance. Optimisation techniques are well covered in this blog post, video tutorial and the webinar.
  • Or you can increase your computation time limit. If you are interested in upgrading your account please contact sales via the contact form at shapediver.com

Hello,

I’m aware about the optimization, because we did them since 2 years we created the first version.
I did one test on https://app.shapediver.com/m/pcl-v1-6-5-sd01 2 minutes ago. I change the parameter POINTURE from 38 to 42, the error message (mximum allowed computation…) is directly appeared.
I would like that error appear around at least 10 seconds after the text input changed.

Furthemore, as I said there was’nt this kind of issue 10 days ago.

Thanks for your help

The message can pop up immediately if the solution for given parameter set timed out and has been already cached.

We haven’t recently pushed any updates that could affect computation time. I’m wondering if there is anything that has changed on your end. Does this happen to old models or only to the latest uploads?

This model has been uploaded on august 25th. There was sometimes timeouts (in some particular cases), but not as much as these last 10 days.

We have other models recently uploaded, but less used by our customers and without issues of this kind.

I have reset the cache of the model and cleared all saved solutions including those which timed out. Change of parameter POINTURE from 38 to 42 works fine but please give it a go with other settings and let me know if this helped.

I did some tries on app.shapediver and on our own app. I didn’t encountered the issue.

I hope to have feelings of my customers about their utilization this end of afternnoon and then I will tell you if your action has eradicate this problem

Thank you!

Hi.

It seem’s the problem is back again.
Could you tell me what you see and if old sessions could/should be cleaned ?

Thank you

I cleared the cache again and you shouldn’t get any errors now. I will keep an eye on the model in following days to make sure it runs smoothly but please let me know if that’s not the case.

Hello Pavol,

I think, after some tries that the problem is slowly coming back again. Don’t know if it can be visible on your side (with logs or else)

Regards,

Your model is at the limit of your computation time allowance so any warnings you get are expected. As I mentioned earlier, you can either optimise your model further or upgrade your account to increase the computation time to 30 seconds to solve this issue.

What I don’t understand is why the problem only arises when there are a lot of open sessions on the same model.
Are the 10 seconds shared between all the sessions open at the same time and which require computation time if the modified parameter is not yet cached (knowing that there is rarely any cached data which can be shared between sessions, as we have an import parameter of an obj file which is unique per client that initiates the session of a model)

Thank you.

Each session gets the allowed computation time. Otherwise busy models would get a progressively worse performance and we wouldn’t build a platform like that, would we :wink:. Learn more how our scalable infrastructure works in the last section of this article.

However, any inconsistencies in performance you experience may arise from the OBJ import which is unique for each client. It’s worth looking into how dense the meshes are and maybe optimise them prior the upload to ShapeDiver. This could reduce the computation time your model needs for processing the OBJs and stay within the limit.

Hello,

Thanks for the explanation, so we have upgraded our account to 30 sec.
But it seem’s that the issue is coming back according to our customers and our observations.
The models are : https://app.shapediver.com/m/pcl-v1-6-5-sd01 and https://app.shapediver.com/m/flx-v1-2-2-sd01

Could you do something like delete the cache as the last times.

Thanks in advance.

And these models too:


The problem is the same as usualy, the scene becomes blank after few parameters updates.

I will try to capture data in chrome dev console and to do a vidéo.

Thanks for your help

I would like to come back to this subject because, at the moment, nothing seems to be resolved.

Our customers are experiencing this recurring and increasingly frequent problem which is quite detrimental to us and for which we are unable to find a cause internally. We would like to have your opinion on the matter.
Quite often, while using our configurator, the display of the models disappears.Two meshes should be displayed: the sole and the footprint, and nothing appears. White screen. By refreshing the browser page, sometimes the model reappears. But most of the time nothing appends. Same thing if a parameter is modified, whether it is the last one changed or another one, sometimes the model appears but most of the time not.
We have done many tests locally on GH and this phenomenon never occurs.
This problem is more or less frequent, depending on the time of day and the users, but remains constant on all our models.
Do you have a clue as to how to improve our user experience which is increasingly degraded?

I enclose the addresses of the models concerned: https://app.shapediver.com/m/pcl-v1-6-5-sd01 ; https://app.shapediver.com/m/spo-v1-4-1-sd00 ; https://app.shapediver.com/m/flx-v1-4-1-sd00 ; https://app.shapediver.com/m/fpi-v1-3-1-sd00

Does this problem occur on the ShapeDiver platform or just in the custom configurator embedded in your web site?

Also try to place calls to api.scene.render() and see if it solves the issue.

Hello,

it’s occuring on the app too.
There is sometimes infinite looping on cache requests:

Regarding to api.scene.render(), the command should be triggered by a button ? The user should click the button when the scene become white/empty ?

Regards

Thanks for sharing this, we are investigating further. Have you experienced a spike in the configurator usage recently? Has the traffic gone up?

While we digg deeper into this, you can give feedback to the users by listening to a certain type of event.
https://viewer.shapediver.com/v2/2.27.0/doc/module-ApiStateInterface-ApiStateInterface.html#StateEventType
This is the piece of code used in viewer v2 to display message overlays, you can use it as example:

// register to user message events
  tmp = api.state.addEventListener(api.state.EVENTTYPE.MESSAGE, function(event) {
    // check if we should show user messages at all
    if ( api.getSetting('showMessages') && event.message ) {
      let status,
          level = event.messageLevel;
      if (typeof level === 'number') {
        level = level & 7;
        if (level === window.SDVApp.constants.loggingLevels.WARN)
          status = 'warning';
        else if (level > window.SDVApp.constants.loggingLevels.WARN)
          status = 'danger';
        else if (level < window.SDVApp.constants.loggingLevels.WARN)
          status = 'primary';
      }
      showMessage(status, event.message);
    }
  });

Ok thanks
For a starts, I think that I will try to send the messages to my server to check which kind of message we’ll get (in order to translate it to our french users or to do orchestrate some solving calls)