# Error C4A1 when using while loops | UR10CB

**URL:** <https://forum.universal-robots.com/t/error-c4a1-when-using-while-loops-ur10cb/20988>\
**Category:** URScript\
**Created:** [May 2, 2022, 2:09am UTC](https://forum.universal-robots.com/t/error-c4a1-when-using-while-loops-ur10cb/20988 "2022-05-02T02:09:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nast](https://avatars.discourse-cdn.com/v4/letter/n/848f3c/32.png) [@nast](https://forum.universal-robots.com/u/nast)\
**Post date:** [May 2, 2022, 2:09am UTC](https://forum.universal-robots.com/t/error-c4a1-when-using-while-loops-ur10cb/20988/1 "2022-05-02T02:09:51Z")

</div>

Hi everyone,

i’ve been running into a Problem when running long while-loops on a UR10CB(3.12.1). I’ve reduced it to the minimal example below.

Running this code either gets me a **C207A0-SafetyStop or a C4A1-Error**. After reading up on this, it appears this happens because the Robot Program Thread doesn’t leave enough CPU time for URcontrol to communicate with the robot. Sadly, this is not reproducible in any Version of the Simulator.

The Solution given in the official Safety Stop Service note recommends simply calling wait() or sync(), which sadly does not help.

**Do you have an idea what else i could do to avoid running into this error?** The actual URscript uses many long while loops that can’t simply be split up.

> **Summary**
>
> ```auto
> def get_array_of_size(size, val):
> # -- returns an array of size "size" filled with "val",
> if (size == 500): return [val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val, val]
> end
> end
> 
> test_ar = get_array_of_size(500, p[random(), random(), random(), random(), random(), random()])
> 
> i = 0
> while (i <27):
> j = 0
> while (j < 28):
> test_ar[i] = pose_add(test_ar[i], p[random(), random(), random(), random(), random(), random()])
> j = j+1
> end
> i = i+1
> end
> 
> ```
> 
> The code for creating an array of a given size looks ridiculous, but it’s the only solution i’ve found on these Forums excluding RPCs, which i can’t use.

---

<div class="post-metadata">

**Author:** ![eric.feldmann](https://avatars.discourse-cdn.com/v4/letter/e/94ad74/32.png) [@eric.feldmann](https://forum.universal-robots.com/u/eric.feldmann)\
**Post date:** [May 3, 2022, 5:28pm UTC](https://forum.universal-robots.com/t/error-c4a1-when-using-while-loops-ur10cb/20988/2 "2022-05-03T17:28:39Z")

</div>

Are you putting the sync() commands in each loop?

---

<div class="post-metadata">

**Author:** ![nast](https://avatars.discourse-cdn.com/v4/letter/n/848f3c/32.png) [@nast](https://forum.universal-robots.com/u/nast)\
**Post date:** [May 13, 2022, 4:29pm UTC](https://forum.universal-robots.com/t/error-c4a1-when-using-while-loops-ur10cb/20988/3 "2022-05-13T16:29:23Z")

</div>

Thought i did, but i just added more sync()'s and now it works. It’s just painfully slow, but i get that. Thanks for the reply
