Skip to content

The routing service returns HTTP 403 on Device #5854

Description

@Eric-Chomba

Summary

Route can be drawn on map in simulator but in Android 10 device it fails with

The routing service returned HTTP 403 (Forbidden)

In Android studio logcat it shows

2026-09-17 13:19:30.929 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,884 - Codename One revisions: 7dd4e7d08b3442d90959477ee52a5ae8c4361b29
2026-09-17 13:19:30.936 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,891 - Expected true for key value while parsing JSON token at row: 1 column: 4 buffer: 
2026-09-17 13:19:30.937 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,893 - Expected true for key value while parsing JSON token at row: 2 column: 8 buffer: ed
2026-09-17 13:19:30.939 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,895 - Expected null for key value while parsing JSON token at row: 2 column: 23 buffer: ede403dde
2026-09-17 13:19:30.941 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,897 - Expected true for key value while parsing JSON token at row: 2 column: 25 buffer: ede403dde
2026-09-17 13:19:30.943 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,899 - Expected null for key value while parsing JSON token at row: 4 column: 4 buffer: ede403ddeedde
2026-09-17 13:19:30.945 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,901 - Expected null for key value while parsing JSON token at row: 4 column: 22 buffer: ede403ddeedde1403dde
2026-09-17 13:19:30.947 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,903 - Expected null for key value while parsing JSON token at row: 4 column: 29 buffer: ede403ddeedde1403dde1e
2026-09-17 13:19:30.950 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,906 - Expected null for key value while parsing JSON token at row: 5 column: 8 buffer: ede403ddeedde1403dde1ee
2026-09-17 13:19:30.952 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,908 - Expected null for key value while parsing JSON token at row: 5 column: 10 buffer: ede403ddeedde1403dde1ee
2026-09-17 13:19:30.954 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,910 - Expected null for key value while parsing JSON token at row: 5 column: 16 buffer: ede403ddeedde1403dde1eexe
2026-09-17 13:19:30.956 21160-21205 MyApp                   com.example.myapp                    D  [Network Thread] 0:0:16,912 - Expected true for key value while parsing JSON token at row: 7 column: 4 buffer: ede403ddeedde1403dde1eexed

Minimal reproducer

Using this test case

    public void runApp() {
        Form form = new Form("Route Test", new BorderLayout());
        MapView map = new MapView();
        form.add(BorderLayout.CENTER, map);
        Label label = new Label();
        form.add(BorderLayout.SOUTH, label);

        LatLng origin = new LatLng(37.423, -122.091);
        LatLng destination = new LatLng(38.8936904, -77.179282);

        RouteRequest request = new RouteRequest(origin, destination)
                .setTravelMode(TravelMode.DRIVING);
        Routing.findRoute(request, new RouteCallback() {
            @Override
            public void routesFound(java.util.List routes) {
                Route best = (Route) routes.get(0);
                //Log.p("Route: " + best); //Route{25247.9m, 1785.8s, 684 point(s)}
                map.addPolyline(best.toPolyline().setStrokeColor(0xff5722).setStrokeWidth(16));
                map.fitBounds(best.getBounds(), CN.convertToPixels(4));
                label.setText((int) (best.getDistanceMeters() / 1000) + " km, "
                        + (int) (best.getDurationSeconds() / 60) + " min");
                form.revalidate();
            }

            @Override
            public void routeFailed(String message, Throwable error) {
                label.setText(message);
                form.revalidate();
            }
        });
        form.show();
    }

Steps to reproduce

Build Android app using test case above and run it in Android device

Expected and observed behavior

Show route on Android device as in Simulator

Codename One version

7.0.271

JDK version

Java 17

Target environment

Simulator, Android, iOS

Last known working version

No response

Logs and diagnostics

Screenshots or recordings

Simulator screenshot

Image

Android 10 phone screenshot

Image

Report checks

  • I searched existing issues and discussions for this behavior.
  • The reproducer contains no credentials, signing keys, or private customer data.
  • I understand that triage is not a commitment to a fix date.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions