Support Topics Documentation Slack YouTube Blog

I get FAULT = '0' [Task execution is aborted due to timeout] very often when request data from table using business logic


(Petr Kibukevich) #1

Application ID: 3A932C69-022C-443A-FF96-2BA0157DAF00

Problem description

When I request data from table, I get FAULT = ‘0’ [Task execution is aborted due to timeout]. This happens not all the time, but very often (more often than half the time). Previously, this was not at all. Since then, neither the client nor the server, I have not changed. I think that the error is on your side, please correct.


(Andrii Bodnar) #2

Hi, Petr!

We had server updating, that could cause timeouts in your app. Is it ok now?

Regards,
Andrew


(Petr Kibukevich) #3

Hi, Andrii! Unfortunately, the problem remained, all without changes (


(Andrii Bodnar) #4

Can you describe steps to reproduce the problem, please?

Regards,
Andrew


(Petr Kibukevich) #5

Business logic is written using codeless, how can i describe the steps, maybe a screenshot of the method screen to get the data to send? Or tell me another one, please.
Everything worked fine until recently, have you reduced resources for business logic?


(Mark Piller) #6

Yes, a screenshot will help or detailed information pointing to the method implementation (app id, service name, method name).


(Petr Kibukevich) #7

AppId: 3A932C69-022C-443A-FF96-2BA0157DAF00
service name: MomentService
method name: getMoments


(Petr Kibukevich) #8

Now, I think, you will say that this logic takes time to execute, which exceeds the limit. But why then did not exceed before? And how to understand - what logic is included in the limit, and what is not?


(Mark Piller) #9

The entire method invocation is included into the limit. Here’s a invocation log for your method (you can see it in the Files section, see the /logging directory and find a file for today):

2019-05-27 12:16:11,389 | SERVER_CODE |  INFO | [835] [1423A00F-FF36-3199-FFE0-2F18F847A200] [INVOKE SERVICE] services.MomentService.getMoments
2019-05-27 12:16:13,370 | SERVER_CODE |  INFO | [835] Processing finished in 1999.125ms
2019-05-27 12:16:17,221 | SERVER_CODE |  INFO | [13809] [FC1BF764-36E6-CCCD-FF8C-FCB7A8851000] [INVOKE SERVICE] services.MomentService.getMoments
2019-05-27 12:16:19,391 | SERVER_CODE |  INFO | [13809] Processing finished in 2193.722ms
2019-05-27 12:16:17,228 | SERVER_CODE |  INFO | [13232] [E7CB42BC-FE12-CFD6-FF69-C8D1EF35A800] [INVOKE SERVICE] services.MomentService.getMoments
2019-05-27 12:16:22,228 | SERVER_CODE | ERROR | [13232] Task execution is aborted due to timeout
2019-05-27 12:16:22,229 | SERVER_CODE |  INFO | [13232] Processing finished in 5022.194ms

As you can see the first two invocations took about 2 seconds, the 3rd one timed out because it took more than 5 seconds (which is the limit). This what we’re investigating right now.


(Petr Kibukevich) #10

Thank you very much for the clarification, but I still wonder why a call with the same parameters sometimes exceeds the limit, sometimes not)


(Mark Piller) #11

That’s exactly what we are investigating.


(Mark Piller) #12

Could you please try several invocations to see if the problem would happen again now?


(Petr Kibukevich) #13

Now everything works fine. Many thanks for the quick fix bug).


(Mark Piller) #14

Thank you for confirming. It was a problem related to some internal DNS routing.

Regards,
Mark


(Petr Kibukevich) #15

The same problem is already in another project, sometimes the logic of the method works for 1.5 seconds, and sometimes for more than 5 seconds. The data are the same. Check, please.
Application ID - 60D8C2A0-3914-983F-FF39-8FEEB26CFD00
Name of service - ChefLocalService
Name of method - getFoods


(Vladimir Upirov) #16

Hi Petr

I can see there are many query parameters, so could you please provide us a curl of the request, if you do not want to share your secret keys with others, just remove your API_KEY from the curl

Regards, Vlad


(Petr Kibukevich) #17

How I can get curl of the request: in my swift app or in console?


(Vladimir Upirov) #18

you can do it from Console, just select your “getFoods” method, fill out all the necessary query params and copy the generated curl


(Petr Kibukevich) #19

Thank you)
curl -X “GET” “https://api.backendless.com/60D8C2A0-3914-983F-FF39-8FEEB26CFD00/REST API key/services/ChefLocalService/getFoods”
-H ‘Content-Type: application/json’
-H ‘Accept: application/json’


(Vladimir Upirov) #20

unfortunately I can’t reproduce the issue, I can see that your method takes approximately 350ms

Perhaps you forgot to specify some query params