Whenever I paste a DeepLink’s URL into my browser, it doesn’t open the game wether or not I already have the Roblox app open.
Video:
If you need logs or anything else, please let me know!
Whenever I paste a DeepLink’s URL into my browser, it doesn’t open the game wether or not I already have the Roblox app open.
Video:
If you need logs or anything else, please let me know!
Hello There! I hope you’re doing well.
Thank you for taking the time to submit this issue and for reading our message.
To help us move forward, we’d appreciate your support with a few questions:
Don’t worry — we’ve got you covered!
You can find step-by-step instructions on how to generate and send the log How to post a Bug Report - Bug Reports - Developer Forum | Roblox
Following these steps will help us better understand the issue and work on a solution more efficiently.
Thank you again for your cooperation!
This is not Mac specific, but on Windows as well! I don’t think you can get logs because the website is meant to initiate the client which it doesn’t… I believe the issue is that it redirects too fast before it can initiate the client
Hiya!
How’s it goin? Sorry for the late response.
I believe this issue might have been fixed in an earlier change.
I have manually tested the following cases using the link from the video (Roblox), and in all cases I was successfully able to reach the experience. I attempted the following:
If this issue persists, could you please provide some supplementary information?
A video like what you had before would also be greatly appreciated
, if it has indeed been fixed, I’d appreciate if you can confirm.
Much appreciated!
This appears to still not be working.
The deeplink: Roblox
(Yes I have Roblox installed/logged into the same account on the web & in app)
Where it is generated:
local HttpService = game:GetService("HttpService")
local SocialService = game:GetService("SocialService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Functions = ReplicatedStorage.Functions
local Modules = ReplicatedStorage.Modules
local Remotes = ReplicatedStorage.Remotes
local CustomFunctions = require(Modules.Functions)
local SupabaseAPI = require(script.Parent.ServerMain.SupabaseAPI)
local deepLinkDebounce = false
Functions.GetDeeplink.OnServerInvoke = function(player: Player, id: string, replyId: string?)
if deepLinkDebounce then return false, "Please wait!" end
deepLinkDebounce = true
task.delay(1, function()
deepLinkDebounce = false
end)
if typeof(id) ~= "string" then return false, "id not a string!" end
if not CustomFunctions.isUUID(id) then return false, "id is not a UUID!" end
if replyId ~= nil and typeof(replyId) ~= "string" then return false, "replyId is not a string!" end
if replyId and not CustomFunctions.isUUID(replyId) then return false, "replyId is not a UUID!" end
local isValid = SupabaseAPI.isThreadAndReplyValid(id, replyId)
if not isValid then return false, "404 Not Found!" end
local data = {
t = `{id}{replyId and `/{replyId}` or ''}`
}
local launchData = HttpService:JSONEncode(data)
local LinkSharingOptions = {
ExpirationSeconds = 84600,
PreviewTitle = data.topic_name or "Topic in Forums",
PreviewDescription = data.reply_description or "",
LaunchData = launchData,
}
local success, result = pcall(function()
return SocialService:PromptLinkSharingAsync(player, LinkSharingOptions)
end)
if not success or result ~= Enum.PromptLinkSharingResult.Success then
return false, "Couldn't generate link!"
end
Remotes.CreateTopNotification:FireClient(player, "rbxassetid://123370411116384", "Link copied to clipboard!")
return true, "Generated link!"
end
Reproduction steps:
(It doesn’t launch the app wether it is already open or not btw)
Server output after manually clicking the experience join button:

What I expect: I expect the app to open when I type in the deeplink and I expect there to be JoinData
It is late right now so I don’t have time to create a video, but I can do so tomorrow if you still need one.
Hmm… This is a bit of a pickle…
This is what happens when I follow your instructions:
If I’m understanding correctly, you’re experiencing 2 problems:
For #1 - App not immediately opening
I think we’re both gonna be disappointed here; after doing some googling, it appears that Safari has a stricter app launch policy, requiring explicit user interaction (taps/clicks) to launch external applications for security reasons (something about preventing auto-launch of malicious links).
I pasting the link into my Chrome browser, and I was able to be successfully, immediately directed to a app launch prompt, which I may permit to open Roblox.
I suggest you try it with a handful of different browsers (Chrome, firefox etc…) and see what the result is.
For #2 - null launch data
There is an explicit difference in behaviour between our devices: In my case, the [testing] Forms experience launches successfully after hitting the blue play button, and in your case it yields this output:
Data "[]"
t: null
Which presumably means a redirect failure.
I have a few hypotheses:
If changing your Safari security settings don’t fix this issue, and your versions are different from mine, please provide your version numbers, maybe we can figure out what’s causing the issues you’re facing ![]()
*fingers crossed*
Cheers!
My Safari version: 26.1 21622.2.11.11.9
My Roblox version: 0.702.0.7020622 (same as you)
I tested the same link on Google Chrome, and unlike Safari, it opened the Roblox application. Unfortunately, the join data was still blank, and it didn’t open up a topic in my game.
So yeah, I agree it’s something with Safari.
However, how does the Share Link give the game your launch data because it doesn’t seem to send it? When I type in the link, it redirects me to https://www.roblox.com/games/80656326595696/Forums. I only know of LaunchData being passed in the URL as a parameter.
Example: https://www.roblox.com/games/start?launchData=%7B%22t%22%3A%22d362dda8-c1ab-4942-9654-8efa603a40c3%2F8043bbdf-5782-45dd-93bf-61d9dd144e45%22%7D&placeId=80656326595696 (these UUIDs are the IDs of topics/posts in my game)
I changed my Safari settings temporarily to allow popups, but it didn’t make a difference in launching the app.
I also whitelisted you to the game (so you don’t get kicked) and generated a fresh link in case the old one expired https://www.roblox.com/share?v=v2&code=0bgofrtkoz4yk5
Gotcha! Seems we’re getting somewhere ![]()
(thanks for white-listing me btw, this lets me debug your issue a little further without resorting to armchair-hypothesizing)
Given that the Roblox redirect is working in your Chrome browser, I imagine we can comfortably conclude that “#1 - App not immediately opening” is resolved? It’s unfortunate we can’t get around the Safari overly-protective-don’t-immediately-open-app behaviour, but c’est la vie ![]()
To answer your question “how does the Share Link give the game your launch data…”
I’m not a lua expert, but basically when you call the SocialService:PromptLinkSharingAsync API (documentation here), the script will call the Roblox backend prompting us to generate a unique share link with timeout (in this case 84600 seconds) which would store the launchData as metadata on our end. You are correct in observing that the Share Link itself doesn’t hold any of the launch data.
Once the user clicks the Share Link and Roblox opens the experience, the experience code will make a request, and the response is stored into the player context which can then be retrieved using Player:GetJoinData() (documentation here), it will obtain the launchData associated with this unique share link code allowing you to parse it from the json and use it as you like.
Basically, you hand us the launch data when you create the share link, and we hold onto it until you (or some player) needs it back by giving us the Share Link code and being like “Hey! I’d like whatever launch data you have for me please
”
If you want a deeper understanding of these APIs and specific behaviours outside of my ability, feel free to voice it and I’ll pull in the big guns (poke the owners of Sharing) to try help us both understand what’s going on.
In terms of join data being blank
This is what happens when I perform the flow of:
As you can see in the video below, it’s successfully directing me to the comment for which I acquired the link from (I think)
As far as I can tell, it’s behaving correctly on my end, so if it’s broken for you that leads me to suspect one thing: Is it possible that your local version’s launch data handling code for the experience is broken and the deployed version (which I’m fiddling with right now) is working?
Either that or I’m misunderstanding the intended behaviour ![]()
If that’s the case, can you give me a step-by-step runthrough of how you want to interact with the link/Roblox/experience and what is the expected resulting behaviour? Perhaps highlight where it breaks off from my video (or even better, record one yourself) would be nice.
If we did manage to resolve this once and for all then even better ![]()
Let’s hope we got if this time!
Yeah I tried it on my own and the link works on Chrome.
It think it is just Safari
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.