Skip to content

[Bug] iOS device fails TLS handshake with UnsupportedCertVersion #109

Description

@julian-hausner

iOS 0.5.6 fails TLS handshake with UnsupportedCertVersion

Description

KDE Connect for COSMIC can discover an iPhone via mDNS and establish a TCP connection, but the iPhone never becomes available for pairing/connection in the COSMIC KDE Connect application.

The connection reaches the KDE Connect service successfully, but the TLS handshake fails with:

[handshake] TLS accept failed: invalid peer certificate: Other(OtherError(UnsupportedCertVersion))

Environment

  • OS: Fedora Linux
  • Desktop: COSMIC
  • KDE Connect for COSMIC Flatpak: io.github.hepp3n.kdeconnect
  • COSMIC KDE Connect version: 0.10.0
  • Flatpak branch: master
  • Runtime: org.freedesktop.Platform/x86_64/25.08
  • iOS KDE Connect version: 0.5.6(1)
  • Device: iPhone
  • KDE Connect protocol advertised by iOS device: 8

Reproduction

  1. Start KDE Connect for COSMIC.
  2. Open KDE Connect on the iPhone.
  3. Both devices are connected to the same local network.
  4. The iPhone is successfully discovered through mDNS.
  5. The KDE Connect service detects the iPhone and attempts a TCP connection.
  6. The TLS handshake fails with UnsupportedCertVersion.
  7. The iPhone does not appear as an available device in the COSMIC KDE Connect UI.

Diagnostics

mDNS

Avahi successfully discovers the iPhone as a KDE Connect device:

_kdeconnect._udp
port = 1716
type = phone
protocol = 8

Flatpak

The Flatpak has network access:

[Context]
shared=ipc;network;

KDE Connect service

The service successfully listens on TCP/UDP port 1716 and detects the iPhone:

INFO kdeconnect_core::transport:
Device supports TCP
peer=<local-address>:1716
device_id=DeviceId("<device-id>")
device_name="<device-name>"

TCP connectivity

A direct TCP connection to the iPhone on port 1716 succeeds.

A packet capture confirms bidirectional TCP communication between the devices. Data is exchanged in both directions before the connection is closed.

TLS error

The KDE Connect service then reports:

WARN kdeconnect_core::transport:
[handshake] TLS accept failed:
invalid peer certificate:
Other(OtherError(UnsupportedCertVersion))
peer=<local-address>:1716

The error occurs consistently on subsequent connection attempts.

Expected behaviour

The iPhone should appear as an available KDE Connect device and allow pairing after successful discovery.

Actual behaviour

The iPhone is successfully discovered and a TCP connection is established, but the TLS handshake fails with:

UnsupportedCertVersion

The device consequently does not become available for pairing in the COSMIC KDE Connect UI.

Additional information

The network configuration has been independently verified. There are no apparent connectivity, routing, firewall, mDNS, or Flatpak network-permission issues.

The failure appears to occur specifically during TLS certificate validation after successful device discovery and TCP connection establishment.

Could this be related to certificate version handling in the Rust TLS implementation used by kdeconnect-core, or compatibility with the certificate generated/used by iOS KDE Connect 0.5.6(1)?

I would be happy to provide additional debug logs or packet captures if required.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions