Request: Bypass for v2.354 string trimming (Croatian road shield conflict)

Is this a…:
Standard bug
Steps to reproduce this issue:
Prerequisites: Open a segment on WME located in Croatia where a state/county road passes through a town sharing the same street name as non-categorized local segments.

Steps: Attempt to edit or create a Primary Street Name for the categorized road by appending a hair space character (U+200A) at the end of the street name string. Save the changes.

Expected Outcome: The hair space is retained at the end of the Primary Name string, allowing Waze to distinguish the categorized segment string from adjacent local segments so that state road shields do not incorrectly propagate onto surrounding municipal streets.

Actual Outcome: Starting in v2.354, backend string sanitization automatically trims all trailing whitespace/hair spaces upon saving. This removes the distinction between strings, causing neighboring non-categorized streets to mistakenly inherit state/county road shields, completely blocking editors from onboarding new roads or migrating existing networks.

For some reason the screen recording upload isn’t working. As such, here is the link to it: https://files.catbox.moe/299o1j.mp4

Environment where the bug occurs…:
All environments
Permalink:
https://waze.com/hr/editor?env=row&lat=45.92098&lon=17.14782&marker=true&zoomLevel=18&segments=193785492
Browser name and version:
Mozilla Firefox for Arch Linux 153.0 (64-bit)
Are you using scripts? Please detail which ones.:
Reproducible without scripts.

Hi @fmis13,

Thank you for submitting this bug report. Could you please check the link to the attached video? I can’t download it for some reason.

Regards,
Nataliia

Hi, see attached.

Hi @fmis13,

Thank you for the attachment.

I checked our releases, and indeed, with v2.354 we added a fix for the issue where extra whitespace added to an existing city or street name was not trimmed.

This issue was creating duplicate entities for streets and cities and forced manual ‘Suggest an Edit’ requests instead of applying updates directly. It has been reported in this bug: Missing string sanitization and merging for street/city names in Edit Suggestions.

Returning to your case, could you please provide more details? To be honest, I don’t fully understand why you need to have two streets with the same name. Could you provide more details?

Thank you.
Nataliia

Hi @Nataliia_Staff ,

thank you for the explanation regarding the v2.354 sanitization fix! I completely understand why global string trimming was implemented to prevent duplicate entities and broken edit suggestions.

To answer your question on why two streets share the same name and why the hair space was necessary:

  1. The shared name: in Croatia, state/county highways frequently pass through towns under their official local street name (e.g., “Zagrebačka ulica”). Naturally, the municipal streets in that same village are also named “Zagrebačka ulica”.

  2. The shield inheritance issue: when a categorized road (State/County Highway) and an adjacent non-categorized street share the exact same Primary Name string, the Waze backend automatically propagates the highway shield onto the local municipal streets. This causes local village streets to incorrectly display state road shields on the map.

  3. Why the hair space (U+200A) was used: to prevent this shield spillage while keeping street names clean for drivers, our community appended an invisible hair space at the end of the Primary Name string on the categorized road segment. To drivers and search, the names remain identical, but to the shield-rendering logic, the strings are distinct—keeping the road shields strictly isolated to the actual highway.

  4. The impact of v2.354: Trimming the hair space removes this string distinction, causing the state shield to spill onto neighboring streets. Because of this, we are currently unable to onboard new road segments or migrate existing networks without breaking the map visuals in these areas.

Would it be possible to allow an exemption for trailing hair spaces (U+200A), or is there an alternative recommended way from the Waze team to prevent road shields from propagating onto adjacent streets sharing the same Primary Name?

Here is a visual explanation. Here is a new road (a part of it) I am trying to add and its categorization.

The yellow part is the new categorization (because of a newly built road). It means that the yellow line should get a L26130 marking.

However, in the WME (and in reality) that road also has a name (Mala Črešnjevica). E.g. if you have a house here, your address will be Mala Črešnjevica xx, not L26130 xx (where xx is your house number).

Thus, the relevant Primary name should be Mala Črešnjevica. However, it’s valid to notify drivers that they are on a L26130 road.

The old practice was to add the primary name as follows: L26130 - Mala Črešnjevica. However, that is way too long, and in some cases it would make the name of the segment fall under the speedometer and the Report button. It would also be announced fully to the user on TTS voices, which is unacceptable.

So, we want to name it Mala Črešnjevica and have the shield represent it as a categorized road.

However, the surrounding segments that aren’t L26130 are also named… you guessed it… Mala Črešnjevica.

So we (without our ‘fix’) have two choices, both not very nice nor acceptable.

Option A is for it to show for every segment, which is a mess (see draft below).

I think we can both agree: what a mess!

The real way this should approximately be is below.

Option B is for it to be completely shield-free. That way the driver would have zero idea that this is a L26130 road.

Our (ugly but good) fix was to add that character to make the road treat it as a different segment from the rest that have the same name. We’d add the actual name (w/o the space) as a alternative name (AN).

Thank you for your help and support!

Hi @fmis13,

Thank you for providing such a detailed answer.

I will forward all the information to the engineers and ask for their opinion and help on how best to handle specific examples like yours.

I will post here when I have news to share.

Regards,
Nataliia

1 Like

The ideal solution would be that we keep the primary name without any shield and withaut a trailing space and to add an alternative name containing the road number with the shield. Currently the problem is that the shield is not surfaced on the map unless it is set on the primary name.

That would work for keeping Primary Names clean, but using Alternate Names for shields globally carries a pretty big hurdle. A change that helps us in Croatia could easily mess things up for another country with denser networks, leading to a “shield explosion” where overlapping E-routes, national, and regional roads clutter the screen at once. It would also likely force a major client app update just to handle multi-shield rendering.

A hybrid approach would probably be the best win here. If Waze sets up an automated shield hierarchy to handle priority order across Primary and Alternate Names, it would do the heavy lifting automatically so we don’t need to recreate shields for every single existing segment.

Pairing that hierarchy with a simple segment-level toggle in WME to show or hide shields when edge cases pop up gives us exact control over local visual clutter, without breaking the UI for other countries or needing a massive app overhaul.