Hi Amogu
The issue is that all variable and constraint names are internally represented as regular chars; unfortunately the arrow is an extended character, and not representable as a regular char, thus the overflow.
In your case, m.addVars will create variables named 'flow[a,b]' where a is the string version if lanes, and b a string version of carriers, but the string version of lanes has that extended character in the middle.
If you use
lanes = ['A->B', 'B->C', 'C->A', 'C->B']
instead, everything will work as expected.
Let me know if this is helpful.
Best
Daniel