I run a Devvit Web game (@devvit/web 0.14.0) in playtest on a private dev subreddit. When a player finishes a draft, my server creates a second custom post with reddit.submitCustomPost, waits until reddit.getPostById succeeds for it, and returns the post's canonical permalink to the webview. The webview then calls, from a button tap (a real user gesture):
import { navigateTo } from '@devvit/web/client';
navigateTo(url); // https://www.reddit.com/r/<sub>/comments/<id>/<slug>/
The problem (iOS Reddit app only): intermittently, the tap dismisses the interactive post the user is in, but the navigation to the target post never happens. The user is left on whatever screen was underneath, in my case the subreddit feed, because that is where they opened the post from. So it is not a wrong resolution of the URL; the current post view closes and the push to the new post is silently dropped.
The target post is definitely live when this happens: the server confirmed it readable ~3s before the reply, my app's comments are already landing on it, and I receive push notifications for that same post while the navigation keeps failing. Web has never missed. Android has been clean too, though I have fewer samples there.
Because navigateTo is fire-and-forget, I added analytics. Every tap logs the exact URL passed and the delay since the post was confirmed. Measured arrival = the destination post's own webview reporting a view within 3 minutes. That metric could overcount failures (a user could arrive and close the app before the webview reports), but every failure I have watched live ended on the feed with the target post never opening.
- navigateTo fired from an effect on mount, iOS: arrived 10 of 12
- navigateTo fired from an effect on mount, web: arrived 10 of 10
- navigateTo from a button tap, iOS: arrived 6 of 11
The failures cluster in time rather than by anything I control. One night (04:17 to 04:34 UTC), three consecutive taps at 1.0s, 2.1s and 5.7s after the post was confirmed all dismissed back to the feed, while a fourth at 21.7s worked. The next day, taps at 0.8s and 1.4s after confirmation worked fine. Same app version, same device, same subreddit, same URL shape.
Ruled out on my side:
- Post readability: the server polls getPostById and only replies once the post reads back (logs show "visible after ~3000ms, 1 read" every time, including every failure)
- URL shape: full canonical permalink with slug, verified in analytics for both successes and failures
- User gesture vs programmatic: both show the same failure mode (current post dismissed, target never opens), though the button tap path fails more often than the on-mount path, per the numbers above
- The message reaches the host: the current post view is dismissed on every failure, so the app acts on the call; only the second half (opening the target) is dropped
This looks related to a report I remember from June on this sub, where navigateTo to another custom post opened the post but the webview rendered blank on iOS. I believe it was also filed on r/bugs and an admin said it was being investigated. Same call, same platform, similar symptom. The difference is that in my case the destination never opens at all. I could not dig up the link to that thread, so if anyone has it handy I would appreciate it.
Questions:
- Is there a known iOS issue where navigateTo from a webview dismisses the current post but drops the push to the target post, especially when the target was created seconds earlier?
- Is there a supported way to hand off from one custom post's webview to another custom post that the iOS app resolves reliably?
Environment: u/devvit/web 0.14.0, playtest app on a private dev subreddit, Reddit iOS App 2026.33.0.636484, iOS 26.5.2.
Happy to share app name, post ids and exact UTC timestamps of the failing taps with anyone at Reddit.