Way history does not show latest change when a node is moved

Way in question: Way: 299521451 | OpenStreetMap

As you can see this hedge has been incorrectly edited with its start/end point (accidentally?) moved into the wrong location some distance away from the actual hedge location.

When I go to edit the way in iD, it shows it was edited 37 hours ago:

However, when I view the Way history on the OSM website, there is no mention of this edit and it looks like the hedge has always been like this since it was created 11 years ago.

However, I can see the start/end node was edited - so that’s clearly not the case.

Obviously I can edit and fix the hedge itself - but any idea why the OSM history isn’t showing the edit?

Edit: changed title to make it easier to find from a search in future

Could be that the new way was created by splitting an existing way. The current way got V1 and the original way (with the complete history) has been deleted?

Changing the geometry of a node does not change the way version. The way version changes when a new node is added to it, a node is deleted, or the tags change. If a node’s info gets changed (geometry or tags), and that node is part of a way, that way will not change the way’s version number.

8 Likes

Thanks - that explains it!

Side note: this seem like an odd decision to have been made. The way is changed when its underlying node geometry is edited, so for it not to be reflected in its version numbering seems counterintuitive.

The way literally doesn’t change when you just move a node (and yes editors could bump the way version “voluntarily” but is convention not to do that). See the discussions on a potential data model change to giving ways their own geometry and the consequences of that Study on the Evolution of the OSM Data Model — Jochen Topf

2 Likes

Yep, got it now. In the OSM data model, a “way” is a term for a collection of nodes and the way itself isn’t modified if the only change is moving (editing the location data of) a node.

That’s a bit different from what a non-specialist user might expect of a “way” i.e., a linear feature where moving a node changes the topology of the way and therefore the way itself is changed.

Thanks for the reading!

Presumably it would be possible, without changing the OSM data model (or bumping the way version number), for the “Way history” page to show if edits have been made to the nodes contained within the way? I guess it might be quite resource intensive though, especially for ways with a large number of nodes.

2 Likes

Yes, but in general way (and relation fwiw) history is a very mixed bag with lots of kinks. The upside is that the current practice stops the history from exploding (and if you look at some relations you wouldn’t believe me, but it would be much much much worse if we propagated geometry changes upwards).

Tangentially related but possibly of interest:

OSMCha (osmcha.org, a third-party changeset viewer) attempts to show changesets in a way that matches the intuitive notions of which OSM elements were “affected” by an edit, even if some of those elements weren’t literally modified in the database and thus did not have their version numbers bumped.

I just wrote up some ideas recently about how to formalize this definition here: Formalize OSMCha's definition of when a changeset "affects" or "indirectly modifies" an element · Issue #898 · OSMCha/osmcha-frontend · GitHub. Feedback welcome if you have any thoughts. Maybe if we can arrive at a definition that’s clear and general enough, other tools could display this information too (e.g. maybe iD could show you if a recent change “affected” a way even if the way did not change). You can’t currently query for this info from the openstreetmap.org API but it could be added to the osmcha.org API.

1 Like

Minor version

External tools that add additional entries in the object history with a “minor version” for indirect geometry changes are OSMesa, osm-wayback, OSHDB and its succesors ohsome-planet & ohsomeDB:

  • State of the Map US 2018: OpenStreetMap Data Analysis Workshop (Jennings Anderson)
    1. Slightly editing an existing object’s geometry (move the nodes around in a way)

    […] We call these changes minor versions. To account for these edits, we add a metadata field to an object called minor version that is 0 for newly created objects and > 0 for any number of minor version changes between a major version. When another major version is created, the minor version is reset to 0.

  • ohsome API — Response Parameters

    Note
    The @contributionChangsetId can be different from the general @changesetId in cases where a contribution stems from changes child elements referenced by an OSM element, e.g. when only the nodes of an OSM way are rearranged or moved. This is sometimes called a “minor version”.

  • ohsome-planet has a osm_minor_version field:
    "name": "osm_minor_version",
    "doc": "minor version of the OSM element which considers all geometric changes, starts from `0` for each (major) OSM version"
    

Example old ohsome API

As the OSHDB is not up-to-date, I use another, older example of a dragged node:

The Contributions Extraction endpoint of the old ohsome API (based on OSHDB) also includes those indirect geometry changes in the way history (excerpt):

"@contributionChangesetId" : 148038143,  "@creation" :       true,  "@timestamp" : "2024-02-29T06:42:47Z",
"@contributionChangesetId" : 172771878,  "@geometryChange" : true,   @timestamp" : "2025-10-03T04:43:38Z",
"@contributionChangesetId" : 172774529,  "@geometryChange" : true,  "@timestamp" : "2025-10-03T06:44:10Z",

https://api.ohsome.org/v1/contributions/geometry?filter=id:way/1255919295&bboxes=-94.7586993,39.2240266,-94.758129,39.2246467&time=2007-10-08,2026-02-19&properties=tags,metadata&clipGeometry=false

The visualization in Ulra allows to find the node-dragging changeset by the @contributionChangesetId property in the popup when clicking on a misplaced segment.

New ohsome API

There will be a new ohsome API based on a different backend, see Moving to ohsomeDB. It was scheduled to be available from 1 May 2026, but I haven’t seen anything about it yet.

1 Like

Isn’t all of that already laid out in the augmented diff format? Or put differently the reason why they exist in the first place? osmcha is simply consuming them.

Yes, augmented diffs encode this information (whereas normal osmChange files from the openstreetmap.org API do not). But OSMCha builds its own augmented diffs when changesets are created in OSM (see adiffs.osmcha.org and https://github.com/OSMCha/osmx-adiff-builder/), and then the osmcha.org web frontend fetches them when users view those changesets. The issue I linked to is about formalizing the definitions used by OSMCha’s augmented diff creation system.