Skip to content

IllegalArgumentException: port out of range:-1 from DefaultProxySelector.select() propagates uncaught through RouteSelector.resetNextProxy #9469

@MatellioManish

Description

@MatellioManish

OkHttp version: 5.3.2
Platform: Android 13 (API 33), ARM64

Summary

On Android devices where a proxy is configured (via APN settings or MDM) but the port field is left unset, DefaultProxySelector.select() throws IllegalArgumentException: port out of
range:-1 internally before it returns. This unchecked exception propagates through RouteSelector.selectProxies() uncaught, crashing the app. This is a fatal crash on the OkHttp Dispatcher
thread.


Stack trace

Fatal Exception: java.lang.IllegalArgumentException: port out of range:-1
at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:144)
at java.net.InetSocketAddress.createUnresolved(InetSocketAddress.java:269)
at sun.net.spi.DefaultProxySelector$1.run(DefaultProxySelector.java:315)
at sun.net.spi.DefaultProxySelector$1.run(DefaultProxySelector.java:219)
at java.security.AccessController.doPrivileged(AccessController.java:43)
at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:218)
at okhttp3.internal.connection.RouteSelector.resetNextProxy$selectProxies(RouteSelector.kt:108)
at okhttp3.internal.connection.RouteSelector.resetNextProxy(RouteSelector.kt:115)
at okhttp3.internal.connection.RouteSelector.(RouteSelector.kt:52)
at okhttp3.internal.connection.RealRoutePlanner.planConnect$okhttp(RealRoutePlanner.kt:153)
at okhttp3.internal.connection.RealRoutePlanner.plan(RealRoutePlanner.kt:75)
at okhttp3.internal.connection.FastFallbackExchangeFinder.launchTcpConnect(FastFallbackExchangeFinder.kt:119)
at okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:62)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:298)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
...


Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug in existing code

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions