Skip to content

Debugging

Terminal window
curl -s https://301.so/_debug/yt-ig \
-A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 Mobile/15E148 Instagram 331.0.0.37.90"
{
"slug": "docs-check",
"trouve": true,
"destination": "https://www.youtube.com/@VincentLeSerpent?utm_source=docs",
"decision": {
"kind": "interstitial",
"scheme": "vnd.youtube://www.youtube.com/@VincentLeSerpent?utm_source=docs",
"web": "https://www.youtube.com/@VincentLeSerpent?utm_source=docs",
"app": "YouTube"
},
"pourquoi": "iOS dans une webview : WKWebView n'intercepte pas les Universal Links en navigation directe, il faut un tap utilisateur.",
"userAgent": {
"brut": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 …) Instagram 331.0.0.37.90",
"platform": "ios", "device": "mobile", "os": "iOS",
"browser": "instagram", "inApp": "instagram", "isBot": false
},
"reseau": { "pays": "MT", "colo": "MRS" }
}

An unknown slug answers 404 with trouve: false — and still reports what it read from your user-agent, which is usually the half you needed:

{ "slug": "pas-un-slug", "trouve": false, "userAgent": { "platform": "android", } }

Because it is worthless otherwise. Its whole job is to be opened from a phone, inside Instagram’s webview, at the moment something isn’t working — and you cannot set an Authorization header there. Paste 301.so/_debug/<slug> in a DM to yourself, tap it, read the JSON.

It exposes nothing beyond what following the link already reveals: no internal identifiers, no team, no token. It also answers cache-control: no-store — every request must be decided again, because the answer depends on the caller.

decision.kind is the branch that would be taken, and pourquoi says why in one sentence. Compare it with the matrix in Deep links:

  • plain when you expected intent → the destination hostname matches no recipe, or deeplink.enabled is false on the link.
  • plain on a real phone → isBot is probably true. Check userAgent.brut.
  • universal inside Instagram → inApp came back none; the app changed its user-agent, which happens.
  • interstitial on Android → shouldn’t happen; Android never gets one.

reseau reports the Cloudflare edge that answered (pays, colo) — useful when the question is “is this a geography problem”, and the same country code that ends up in the click dimensions.