Release Notes

Version 2.3.0 - 28/05/2026

Discover the improvements and new features included in the following version.

Share your thoughts on this release by using the feedback button located at the bottom of the page.

General

Breaking changes
  • Telemetry initialization will become mandatory 6 months after the next release.
Fixes
  • Improve offline map download stability and performance by ensuring the HTTP client is created only once.
  • Prevent crashes when cancelling HTTP streaming requests by avoiding stream cancellation on the main thread.
  • Fix NullPointerException by restoring null-assertion operator in lazy route planner disposal.
  • Reduce the risk of crashes and ANRs when processing region graph updates.

Common

New features
  • Quantities can now be constructed using an extension syntax like 5.meters.
Fixes
  • Fix crashes in okhttp3 third party library code.

Data Management

Breaking changes
  • Restrict NdsMapContext to internal use, so it can no longer be used outside the SDK. It can still be constructed.
Fixes
  • Prevent a possible deadlock during the initialization phase.
  • Recreate NavigationTileStore persistent cache encryption key in some edge cases.
  • Retrieve NDS.Live cache encryption key on a background thread to avoid potential ANRs during app startup if NavigationTileStore is initialized on the main thread.
  • Fix recovery when the Android keystore folder is missing.
  • Fix several rare crashes that could happen during initialization of the NDS.Live tile store.
Deprecations
  • Deprecate RegionId type because it is no longer used.

Location

Updates
  • Enable filtering of entry point types by default.
  • Use new EntryPointType API.
  • PersonalLocationType is now part of Extended flavor.

Map Visualization

Breaking changes
  • The following is now available in Extended flavor:

    • com.tomtom.sdk.map.display.ui.LifecycleAware
    • com.tomtom.sdk.map.display.ui.MapProvider
    • com.tomtom.sdk.map.display.ui.MapReadyCallback
    • com.tomtom.sdk.map.display.ui.UiComponentClickListener
New features
  • Enhance POI rendering by using details from Place.details as a fallback when PoiLocation.poi is null to ensure consistent map visualization.
Updates
  • Add OnRouteDetails to Complete flavor.
  • Add Extended flavor availability banner for non-compose guides.
  • Move all non-compose guides to a dedicated section.
Fixes
  • Add kotlinx.coroutines.flow.buffer(capacity: Int, onBufferOverflow: BufferOverflow) with BufferOverflow.DROP_OLDEST strategy to the gesture event flow to prevent ANR errors.
  • Bind unbound NavigationVisualizationAdapter to data flows in Compose.
  • Compute the carpet geometry in C++ to improve Map Visualization performance.
  • Prevent a crash when creating PlacesVisualization more than once.
  • Fix missing safety zones when a zone is defined with only two points.
  • Allow multiple com.tomtom.sdk.map.display.visualization.navigation.NavigationVisualization instances to be created simultaneously.
  • Fix incorrect RouteStop ID handling after selecting an alternative route, ensuring markers respond to the correct stop.
  • Improve synchronization of camera tracking mode updates in CameraState.
  • Ensure better route tubes are visible on the map when using the composable RoutingVisualization to provide clearer alternative route options to the user.
  • Replace TomTomMap in DefaultTrafficLightVisualization when corresponding function is called.
  • Use correct TomTom Standard Styles with Premium renderer.
  • Update TrafficIncidentsIncidentParser to support both legacy numeric index and new string value formats for the icon_category field to ensure backward compatibility with traffic incident data.
  • Do not throw IllegalStateException when DefaultMessageClient is closed.
  • Fix native crash on Premium Map Display shutdown.
  • Prevent crash on range visualization primitive removal.
Deprecations
  • Deprecate create APIs in com.tomtom.sdk.map.display.visualization.poi.PoiVisualizationFactory.
  • Deprecate create APIs in com.tomtom.sdk.map.display.visualization.range.RangeVisualizationFactory.
  • Deprecate primitive APIs in com.tomtom.sdk.map.display.visualization.navigation.NavigationVisualizationFactory.
  • Deprecate primitive APIs in com.tomtom.sdk.map.display.visualization.routing.RoutingVisualizationFactory.
  • The contents of the com.tomtom.sdk.maps.visualization:poi is relocated to com.tomtom.sdk.maps.visualization:visualization. The dependency on com.tomtom.sdk.maps.visualization:poi should be removed.
  • The contents of the com.tomtom.sdk.maps.visualization:range is relocated to com.tomtom.sdk.maps.visualization:visualization. The dependency on com.tomtom.sdk.maps.visualization:range should be removed.
  • The contents of the com.tomtom.sdk.maps.visualization:search is relocated to com.tomtom.sdk.maps.visualization:visualization. The dependency on com.tomtom.sdk.maps.visualization:search should be removed.
Breaking changes
  • Move com.tomtom.sdk.datamanagement.nds.update.AutomaticMapUpdateFailureListener to Extended flavor.
  • Optimize storage performance by disabling com.tomtom.sdk.navigation.resumesnapshotrenewer.NavigationResumeSnapshotRenewer saves during route updates when saveInterval is set to Duration.INFINITE, which reduces flash storage I/O by avoiding unnecessary writes for dynamic data like traffic and ETA.
Updates
  • Move the following to Restricted:

    • com.tomtom.sdk.navigation.RoutePlanningOptions.addItineraryPoint
    • com.tomtom.sdk.navigation.RoutePlanningOptions.removeItineraryPoint
    • com.tomtom.sdk.navigation.RoutePlanningOptions.skipRouteStop
  • Rename Preventive interim instruction to Continue Interim across instruction generation.

  • Update the API descriptions of:

    • com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionListener
    • com.tomtom.sdk.datamanagement.nds.update.RegionGraphListener
Fixes
  • Add time mocking to align traffic dump timestamps with route planning times.
  • Fix a crash when closing junction view engine while generating junction views.
  • Do not show incorrect instruction icon when icon generation fails.
  • Fix a crash (SIGSEGV) in AddCrossTileProhibitedComplexManeuvers that occurred when CrossTileCache held stale references after LRU eviction.
  • Fix potential race condition on map replacement APIs.
  • Generate Confirm announcement when Better Route Proposal is accepted automatically.
  • Update instruction chaining to follow the UX rule where the first trigger occurs at either half of the MAIN-phase distance or at the CONFIRMATION phase to provide a more intuitive guidance experience.
  • Do not repeat triggered announcements after passing continue interim instructions.
  • No confusing road number in traffic jam warning in Japan, Korea and Taiwan.
Deprecations
  • Deprecate all properties of navigation engine registry except guidance engine.

Personalization

Fixes
  • Ensure favorite personal locations are correctly removed after being added from a recent destination.

Routing

Updates
  • ChargingOptions parameters avoidChargingParks and chargingStopsStrategy are now part of Complete flavor.
  • Correct and enhance reconstruction modes documentation.
  • Promote entry point routing to General Availability.
  • The com.tomtom.sdk.routing.buildEvRoutePlanningOptions API is now available in General Availability.
  • Clarify what close traffic events means, so it’s easier to understand when traffic events are considered close enough to be handled together.
Fixes
  • buildEvRoutePlanningOptions will now successfully use avoids that are set as a parameter.
  • RoutePlanningOptions now require valid supportingPoints to be set when alternativeRoutesOptions.alternativeType is BetterRoute or CorridorRoute.
  • BackToRoute result now has charging park amenities information.
  • Improve diagnostic logging when using vehicleModelId.
  • Do not propagate charging park to engine if source is offline search.
  • Fix not calling RoutePlanningCallback when the caller of the RoutePlanner.planRoute does not hold a reference to the callback.
  • Fix setting the departure time for offline range requests.
  • Restrict vehicle types to Car within the SeSe Route Planning Options factories to ensure compatibility and prevent unsupported vehicle configurations.
  • Ensure onboard and online routing requests respect avoidOptions and considerTraffic even when routeType is set to null.
  • Reduce onboard Long Distance EV computation time when the initial battery charge is low.
  • Automatically enable weather-based consumption adaptation when using a Vehicle Model ID to significantly improve route accuracy and range estimation for electric vehicles.
  • Prevent potential deadlocks by improving the synchronization of the route planner shutdown process to ensure application stability.
New features
  • Add country code filter to search v3.
  • Add time zones attribute for search v3.
  • Enable geographical filter, poi category filter and result type filter for PlacesSearch Suggest API.
Updates
  • com.tomtom.sdk.location.poi.StandardCategoryId.parent:StandardCategoryId is now in General Availability.

  • Improve support for eMobility Service Providers (EMSPs) in hybrid and offline search functionalities. The following changes were implemented:

    • Integrated handling for restricted EMSPs, allowing better visibility of their status (restricted or not) via the enumeration API.
    • On search responses, only non-restricted and accessible/allowed restricted EMSPs are included in the results, ensuring compliance with service limitations.
  • Move FuelPriceProvider and ParkingDetailProvider from Complete to Extended flavor.

  • Remove available charging options from Suggest response.

  • Search v3: Adjust DiscoverResultJsonModel.

  • The following APIs have been removed:

    • buildBrandInAreaSearchOptions
    • buildPoiCategoryInAreaSearchOptions
Fixes
  • Improve Fallback Behavior for HTTP 4xx and 5xx Errors in Search. The following failure types are now handled more effectively:

    • SearchFailure.HttpFailure for 401, 403, 408, and 429 errors will trigger a fallback to offline.
    • SearchFailure.HttpFailure for 5xx errors will now trigger a fallback to offline as well.
  • In online first search, return online results even if offline search fails which makes custom POI and personal location search unavailable.

  • Make custom POIs work with empty map with offline search.

  • Reverting the fallback Behavior for HTTP 4xx and 5xx Errors in Search which changed the following:

    • SearchFailure.HttpFailure for 401, 403, 408, and 429 errors will trigger a fallback to offline.
    • SearchFailure.HttpFailure for 5xx errors will now trigger a fallback to offline as well.
  • The system no longer issues excessive reverse geocoding requests during route planning and waypoint interaction. This eliminates 429 TooManyRequests errors and ensures addresses are displayed correctly without flickering.

  • Remove score field from PoiDetailsResultJsonModel to prevent deserialization failure.

  • Fix EV search failing when the backend returns an unrecognized value in the tariff restriction reservation policy field. No action is required by API users.

Telemetry

Updates
  • The following Telemetry API is now available in General Availability:

    com.tomtom.sdk.telemetry.Telemetry.initialize

Fixes
  • Only consider side roads on the same side as turn direction.
Deprecations
  • com.tomtom.sdk.telemetry.Consent and com.tomtom.sdk.telemetry.Telemetry.initialize(context, configProvider) migration instructions.

    Before

    Telemetry.initialize(context, configProvider)
    Telemetry.userConsent = Consent.Personalized

    After

    1Telemetry.initialize(
    2 context,
    3 configProvider,
    4 locationProvider,
    5 initialConsent = UserConsent.TelemetryOn,
    6)
    7
    8// Later, when the end-user changes their preference:
    9Telemetry.setConsent(UserConsent.LocationOnly)

    Important:

    • When using the consent-aware APIs (Telemetry.initializeoverloads that accept initialConsent / getInitialConsent, Telemetry.consent and Telemetry.setConsent), Telemetry must be initialized (or explicitly opted out by setting the consent to UserConsent.TelemetryOff) before using SDK components that may post telemetry events. Otherwise, the application may crash when Telemetry events are posted.
    • Telemetry initialization can only be performed once. Any subsequent attempt to reinitialize Telemetry will result in an exception.
    • Start the LocationProvider updates before initializing Telemetry to avoid warnings.
  • Deprecate com.tomtom.sdk.telemetry:sensoris module. No replacement is provided. As a temporary solution, use com.tomtom.sdk.telemetry:telemetry-protobuf-internal instead.

  • The following APIs will be deprecated:

    • com.tomtom.sdk.telemetry.Consent
    • com.tomtom.sdk.telemetry.Telemetry.initialize(context, configProvider)

Traffic

Fixes
  • Handle MapVersionMismatchError exception during traffic events decoding.
  • Preserve valid traffic events across batch decoding.
  • Validate Locale objects provided by the client.

Virtual Horizon

Breaking changes
  • com.tomtom.sdk.datamanagement.nds.AccessReleasedCallback is now available in Extended flavor.
  • com.tomtom.sdk.datamanagement.nds.AccessReleasedCallback.invoke() is now available in Extended flavor.
  • com.tomtom.sdk.datamanagement.nds.NdsStoreFailure is now available in Extended flavor.
Updates
  • The following is now available in General Availability:

    • com.tomtom.sdk.hazards.model.BadRoadConditions secondary constructor
    • com.tomtom.sdk.hazards.model.BadRoadConditions.Cause
    • com.tomtom.sdk.hazards.model.BadRoadConditions.causes
    • com.tomtom.sdk.hazards.model.ReducedVisibility secondary constructor
    • com.tomtom.sdk.hazards.model.ReducedVisibility.Cause
    • com.tomtom.sdk.hazards.model.ReducedVisibility.causes to GA
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad secondary constructor
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad.Cause
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad.causes
Fixes
  • Reduce mobile data consumption by optimizing horizon search distance during navigation with a route.
  • Publish synchronized HorizonPosition and HorizonSnapshot to always use a consistent path identifier.
  • Display the correct speed limit for the current driving direction on two-way roads.
  • Prevent application crashes during map updates while following a route. Validate input parameters if not existing map reference key is given as argument to Map Data Access.
Deprecations
  • Deprecate:

    • com.tomtom.sdk.hazards.model.BadRoadConditions primary constructor
    • com.tomtom.sdk.hazards.model.BadRoadConditions.hasPotholes
    • com.tomtom.sdk.hazards.model.ReducedVisibility primary constructor
    • com.tomtom.sdk.hazards.model.ReducedVisibility.dueToHeavyRain
    • com.tomtom.sdk.hazards.model.ReducedVisibility.dueToFog
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad primary constructor
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad.animal
    • com.tomtom.sdk.hazards.model.ObjectsOnRoad.people