LocalizeBehavior error in version 2019.3

Hello everyone,
I’m facing an error using the LocalizeBehavior in version 2019.3.
Whenever the robot switches from particle filter local localization to the grid search global localization (i.e. when the local_max_score goes below the configured threshold), the application terminates with the message “Channels are already synchronized”.
I’ve noticed that this occurs also in the flatsim application, so it seems to be a backend bug.
Is there a way to fix it? Was by any chance already fixed in version 2020.1?

Thanks for your help,


This issue has been fixed. Thank you for reporting however.
If you with to stay on the 2019.3 version for now and need a fix, you will need to edit the code in


You can change the ASSERT into a simple check.
However I would recommend moving toward 2020.1, you will have more fixes and access to new features as well.


Hi Ben,
thanks for your fast reply. I’ve actually tried to modify the assert into a simple check, but it seems like the code, even if it’s compiled, doesn’t affect the application. Even if i put some LOG_INFO in the Codelet.cpp i keep getting the error from the assert (and the crash of the application) and i dont’see my logs. Not sure if what i’m saying is clear.
It seems that it compiles that Codelet.cpp but then the result of the compilation is not used…maybe is using the prebuild .so provided in the SDK?

Thanks again.

Hi Daniele,

You are right:
the codelet asserting is pre-compiled. Changing the code won’t help here.
I don’t see a solution to fix the issue in 2019.3 unfortunately.
Once again I would advice moving to 2020.1 if possible as it’s unlikely we publish a fix for 2019.3 now that 2020.1 is out.


Hi Ben,
thanks for your support. I will switch to 2020.1.