StreetComplete icon indicating copy to clipboard operation
StreetComplete copied to clipboard

Endless loop when marking road surface and firmness

Open maze88 opened this issue 1 month ago • 13 comments

Bug description When marking a road surface quest with value "dirt" (surface=dirt) then a firmness quest comes up, for which when marking "solid" or "mostly solid" (tracktype=grade1 or ..2), the road surface quest reappears, followed again by the firmness quest (and on and on).

How to Reproduce Location near quest that demonstrates bug: 32.858292, 35.455438 (but occurs often with same conditions).

Versions affected Street Complete v61.3 (but I've noticed it several updates ago, until I got through to reporting it) on Pixel 4a phone, running Android 13.

maze88 avatar Nov 09 '25 19:11 maze88

Ref https://github.com/streetcomplete/StreetComplete/issues/6272

HolgerJeromin avatar Nov 09 '25 20:11 HolgerJeromin

Which interface language you use? Maybe translation is problematic?

matkoniecz avatar Nov 10 '25 06:11 matkoniecz

Which interface language you use? Maybe translation is problematic?

English/default...

maze88 avatar Nov 10 '25 08:11 maze88

It's a never-ending story. I thought we have already hit the lowest common denominator with tracktype vs surface.

@maze88 According the the OpenStreetMap wiki, tracks with tracktype 1 "solid" and tracktype 2 "mostly solid" should only be chosen for, well, mostly solid surfaces. "Dirt" is not considered to be a solid surface. Maybe you meant to answer "Compacted"?

westnordost avatar Nov 10 '25 12:11 westnordost

It's a never-ending story. I thought we have already hit the lowest common denominator with tracktype vs surface.

@maze88 According the the OpenStreetMap wiki, tracks with tracktype 1 "solid" and tracktype 2 "mostly solid" should only be chosen for, well, mostly solid surfaces. "Dirt" is not considered to be a solid surface. Maybe you meant to answer "Compacted"?

Yes, reconfirmed with the tags as in my OP... I select "dirt" for roads/paths that are made of the same type of ground/earth around them, one could argue that it's compacted dirt... But in my understanding "compacted" would refer to a different substrate than the surroundings, such as compacted limestone/gravel with dirt/earth to the sides.

Here is an example that I would interpret as "compacted": https://thecar.co.il/טיול-לסופש-אל-נחל-שורק

And here is an example that I would interpret as "dirt": https://wallpapers.com/images/high/dirt-pictures-3348-x-2232-2assu375mkrugwew.webp

maze88 avatar Nov 10 '25 12:11 maze88

"Yes" to what question?

westnordost avatar Nov 10 '25 13:11 westnordost

"Yes" to what question?

Sorry for the confusing wording, I've updated my previous comment.

< this message will self-destruct if you delete your previous comment, so as to keep the discussion tidy>

maze88 avatar Nov 10 '25 15:11 maze88

I'd agree, actually... @matkoniecz , what do you think, what should be changed?

westnordost avatar Nov 10 '25 16:11 westnordost

what do you think, what should be changed?

From the UX (and my experience) perspective, and assuming each user may have their own interpretation of the definitions "dirt", "compacted", "solid", etc... The least that should be done is that the tag value choices that the quest offers the user should be limited/filtered in a manner that will prevent the system from entering such loops.

maze88 avatar Nov 10 '25 16:11 maze88

The least that should be done is that the tag value choices that the quest offers the user should be limited/filtered in a manner that will prevent the system from entering such loops.

Uh, that does not seem so nice from UX perspective to me. Hiding values (which are otherwise present) sounds like it would bring even more confusion to the issue ("where and why did those answers disappear? that must be a bug!"). If people really feel that even surface=dirt can be tracktype=grade1, I see following solutions:

  1. Show all values, but mark incompatible values as disabled (greyed-out), and clicking on them should provide informational message with exact description why such combination is deemed invalid. That variation of your suggestion would be significantly more UX friendly (IMHO), but is likely too much work and special casing for that one quest (unless perhaps the UI can be reused elsewhere, or there is a volunteer caring deeply about specific solution?)
  2. have special logic which detects such quest loops, and shows warning to user explaining what is the problem. I don't see how it could be done in clean way, and it does not really sound too nice (but I mention it for completeness)
  3. allow users to make incompatible selection, but in such case show them a warning explaining why that combination is likely not valid, and if they want to revise their answer, leave a note, or proceed with selected answer (forcing user answer, even if "incompatible").
  4. add the issue to SC FAQ and hope it would clear it up for people (but does not really work if people don't read the FAQ, or, more importantly, if they disagree with the reasoning).
  5. just give up on those checks altogether - keeping with KISS principle. If user puts up an invalid combination, it's on them, and we let[^1] QA tools detect the discrepancy and let janitor mappers handle it. Probably the easiest way out as far as StreetComplete is concerned; but it is sad missed opportunity that a lot of mistakes/mistagging that could've been catched and fixed on the ground won't be.

My preference would be (from better to worse): 1,3,5,4.

[^1]: and suggest (or even write PR for them) to e.g. Osmose (if the check does not exist yet).

mnalis avatar Nov 11 '25 03:11 mnalis

  1. One of 1-3 (explaining notification) with the option to "the surface has changed, resurvey" or "leave note".

rusty-snake avatar Nov 11 '25 15:11 rusty-snake

Well, if everyone can have their on experience and perspective of how solid/hard specifically "dirt roads" can be, when they are compacted by being well-trodden, then maybe the paragraph in the wiki that claims that tracktype grade 1 can only be used for paved surfaces should be revised.

On the other hand, looking at it now https://wiki.openstreetmap.org/wiki/Key:tracktype , it doesn't even say that exactly. It just says "Usually a paved surface". Okay, usually. 🤷

So, I would somewhat tend towards option 5.

westnordost avatar Nov 12 '25 18:11 westnordost

@matkoniecz

westnordost avatar Nov 12 '25 18:11 westnordost

ping @matkoniecz

westnordost avatar Dec 12 '25 23:12 westnordost

oh dear, this one again

I will look at that

matkoniecz avatar Dec 13 '25 17:12 matkoniecz

So, the problem here is that it is quite flat well-beaten and quite solid dirt, without gravel or other admixtures?

I guess that stuff like https://www.openstreetmap.org/way/1112650786/history / https://wallpapers.com/picture/dirt-pictures-3348-x-2232-2assu375mkrugwew.html is more likely to happen in dry and flat areas.

Still surface=type tractype=grade1 seems really really dubious to me. On the other hand maybe it makes more sense to people if rain basically never comes and dirt clay is basically baked into solid surface?

@maze88 - does it describe situation well?

matkoniecz avatar Dec 16 '25 19:12 matkoniecz

maybe it makes more sense to people if rain basically never comes and dirt clay is basically baked into solid surface?

@maze88 - does it describe situation well?

Yes, if I understood you correctly that's a reasonable description of such situations - which indeed make sense in less rainy regions (like Israel; where I map mostly).

maze88 avatar Dec 17 '25 00:12 maze88

@matkoniecz I pinged you because I tend towards what @mnalis wrote as "option 5" (but don't want to destroy your work before involving you):

just give up on those checks altogether - keeping with KISS principle. If user puts up an invalid combination, it's on them, and we let1 QA tools detect the discrepancy and let janitor mappers handle it. Probably the easiest way out as far as StreetComplete is concerned; but it is sad missed opportunity that a lot of mistakes/mistagging that could've been catched and fixed on the ground won't be.

westnordost avatar Dec 17 '25 00:12 westnordost

I would prefer to not do this way, but at this point I understand preferring to not deal with it at all.

matkoniecz avatar Dec 17 '25 06:12 matkoniecz

So while I would prefer to keep it as it was (some conflict detection), I understand why removal may be preferable for you.

matkoniecz avatar Dec 17 '25 06:12 matkoniecz

Well, do you see any alternatives?

westnordost avatar Dec 17 '25 12:12 westnordost