Skip to content
Dashboard

Limitations & Known Issues

Deferred linking depends on the signals the platforms expose, and those signals can be masked, stripped or absent. The sections below describe the edge cases seen in real traffic, their cause, and their effect on attribution.


Several kinds of service change the client’s IP address before it reaches Detour:

  • iCloud Private Relay
  • consumer VPNs
  • corporate proxies

Private Relay is the most common. It masks the real IP and presents a relay IP instead, sometimes with a coarse region attached.

iCloud Private Relay is an opt-in iCloud+ service that proxies and encrypts traffic from Apple devices, so that no single party sees both who the user is and what sites they visit. Traffic takes two hops, an Apple-operated ingress relay and then a third-party egress relay, which masks the real IP address and DNS lookups while preserving the user’s approximate region.

  • Who has it — iCloud+ subscribers who turn it on in iCloud settings.
  • What it covers — web browsing in Safari, plus other unencrypted app traffic the system can proxy. It runs in the OS networking stack and is not visible to the user once enabled.

Clipboard contents are a strong probabilistic signal, but iOS restricts access to them. Reading the clipboard triggers a system prompt in some contexts, and users can decline it. In other flows the prompt never appears at all.


Any service between the tap and Detour can rewrite the URL. Ad networks, trackers, and link shorteners routinely strip query parameters or referrer information, and on Android click_id is carried in those parameters.


The Android Install Referrer usually delivers referrer data. It does not in these cases:

  • The device has an enterprise account configured.

    Referrer data is reset automatically, even when a non-enterprise account is currently selected. This is a known Android platform limitation, tracked in the Google Issue Tracker.

  • The link opened the Play Store website rather than the Play Store app.

  • The install did not come from a normal store flow: pre-installs, sideloads, some Play Store variants, and internal or external test tracks.

  • The Play Store and the app were not interacted with in the expected order, which can delay or lose the referrer.


Instagram, Threads, Facebook, and TikTok open links in their own webview on iOS, and that webview refuses App Store URLs. A link placed in a bio or a caption is opened there by default, so a deferred link that redirects to the App Store stops at that point. The Meta webviews end on a blank page. TikTok shows an error toast.

Only iOS App Store destinations are affected. Android in-app browsers follow Play Store URLs normally, and a link whose destination is a web page loads in all of these webviews.

Detour treats these apps differently:

  • Instagram and Threads — Detour opens the App Store URL outside the webview, through another browser or the App Store app. If no hand-off goes through, the visitor stays on the page with a button to continue manually.
  • Facebook — Detour first tries to open the installed app, through Safari for a link in a post or an ad, and through an Open app button for a link in a bio. Without the app, the visitor then reaches the App Store. If the visitor declines the Safari prompt, a tap on the App Store button opens the App Store.
  • Messenger — the automatic redirect does not open the App Store. Detour shows the App Store button, and a tap opens the App Store.
  • TikTok — no hand-off works. Detour skips the attempts, App Preview, and the iOS copy-link page, and tells the visitor to open the page in their own browser from the ••• menu.

For the hand-off in each app, see Links in Social Apps.


Safari on iOS 26 reports CPU iPhone OS 18_7 in the user agent regardless of the real iOS version. The device signal on iOS is exactly that comparison: the OS version from the click’s user agent against the systemVersion the SDK reports. A frozen token makes it fail.

Detour reads the true version from Safari’s Version/ token instead.


Probabilistic matching is a heuristic. It combines signals and accepts anything above a threshold, so there are two kinds of error:

  • False negative — a correct match is missed, because the score fell below the threshold.
  • False positive — the wrong click is matched, because its score cleared the threshold.

Shared households, corporate devices, and NATs all produce similar fingerprints and identical IPs for several distinct users.