djbalin
CCConvex Community
•Created by aarku on 4/18/2025 in #support-community
Plans to support functions returning delta updates?
Stack posts are great reads and very valuable, and thanks a lot for making them! but I was thinking of something more along the lines of typical documentation or reference manuals. "How Convex works" is a great, but it's quite a long read for someone who just wants to find out e.g. exactly when a cache is busted in Convex.
That information could e.g. be written succinctly at https://docs.convex.dev/realtime#automatic-caching.
I can tell that you put great effort into keeping the docs lean, simple, actionable, and eradable, and that's great, keep doing that imo, but would also be awesome with links like "More about caching" that point to a complete specification of the given topics! ☺️
46 replies
CCConvex Community
•Created by aarku on 4/18/2025 in #support-community
Plans to support functions returning delta updates?
I'm curious Ashok, what problem are you experiencing from these non-partial updates at the moment?
I've been thinking about this a bit as well: we are a video streaming platform, and I've been a bit worried that our app may be overreacting when, for example, one of our creators uploads a new video or simply makes a minor edit to a video (and thus modifies the
video
table that our clients subscribe to).
What @Ian mentioned above is interesting: that queries with an index are only reactive to the data within that index range. It would be very useful to have a clear outline of which changes to data trigger a refetch and under what conditions!46 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP
Let's keep each other updated on our findings about this pernicious thing :)) @Zachoo @erquhart
70 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP
https://discord.com/channels/695411232856997968/1265984246309327001/1265984248217866322
This thread in the Expo discord also mentions this problem, where a solution was seemingly to relax the Apple Keychain access rules. We also implemented this in our switch from Expo SecureStore to react-native-keychain, and it's very likely that this has been what solved it for us
70 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP
Ah interesting I just looked into background permissions that you mentioned - I wasn't aware of explicitly having set any, but I can see that our
expo-video
actually allows background playback of videos. Also noticed in Sentry that virtually all of the You are signed out
error traces begin by the user playing a video and then, presumably, locking their device while still on that video. So expo-video
keeps the app alive in the background, but then maybe our Expo SecureStore settings did not allow for this background check70 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP

70 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP
@Zachoo
70 replies
CCConvex Community
•Created by Zachoo on 4/28/2025 in #support-community
Logout after period of Inactivity Convex + Clerk - Expo APP
We've been experiencing huge issues with exactly this as well. We think, however, that the issue may be Expo SecureStore. We found through Sentry monitoring that a
User interaction is not allowed
error was being thrown often by the Apple Keychain (which is what Expo SecureStore etc. use on iOS to store passwords etc. securely on the iOS device). This appeared to be after a longer period (>few hours) of the app being in the background, and the user then changing e.g. charging state or orientation, which somehow triggered Clerk or Expo to try to re-fetch authentication state while the app was in the background, which was disallowed due to Keychain security constraints. This eventually resulted in a "Error: You are signed out" from Clerk, which we assume then caused users to lose their local authentication state.
We also experience quite a lot of Convex errors stating that our users are not authenticated (we also use auth'ed wrappers), but think the error above is the original culprit.
Do you have Sentry set up? Otherwise maybe try to do that and see if it helps - literally takes less than an hour. We ended up moving away from Expo SecureStore, as there were several open GitHub issues mentioning this exact same issue, but no Expo fix seems to have come yet. We now use https://www.npmjs.com/package/react-native-keychain, and the error has completely disappeared from Sentry, so we are waiting and hoping to hear less and less about this issue from our users 🤣 as it's pretty much impossible to replicate on our side..70 replies
CCConvex Community
•Created by Noah on 4/24/2025 in #support-community
Typescript performance issues with caused by Convex types
did you figure out anything @Noah ?
13 replies
CCConvex Community
•Created by Habibullah Bahar on 4/24/2025 in #support-community
High Latency in Queries from Convex DB (1.5s per Request)

17 replies
CCConvex Community
•Created by Habibullah Bahar on 4/24/2025 in #support-community
High Latency in Queries from Convex DB (1.5s per Request)
I was experiencing some performance issues in the past couple of days as well - our functions went from ~50 ms to ~500 ms, seems to have been resolved now though. Maybe there are some transient issues with the servers?
I believe all servers are hosted in the US
17 replies
CCConvex Community
•Created by Noah on 4/24/2025 in #support-community
Typescript performance issues with caused by Convex types
For further information, I have typed all Convex handler functions, e.g.
handler: async (ctx, args): Promise<void>
. I think this improved the problem slightly, but I may just have been wishfully hallucinating - it wasn't anywhere near enough, at least.
I would like to try specifying returns:
in all my convex function definitions, but im finding it cumbersome to work with validators for complex return types13 replies
CCConvex Community
•Created by Noah on 4/24/2025 in #support-community
Typescript performance issues with caused by Convex types
I can confirm your finding! Deleting the
But yeah, this is not a solution, since it breaks types on all Convex-stuff in both backend and frontend files
_generated
folder gives me extra virgin intellisense speed in TS stuff 😻But yeah, this is not a solution, since it breaks types on all Convex-stuff in both backend and frontend files
13 replies
CCConvex Community
•Created by Noah on 4/24/2025 in #support-community
Typescript performance issues with caused by Convex types
I am experiencing some very very intense TS performance issues as well, especially in my frontend React files but to a slightly lesser extent also ini my Convex files.
I'm in a monorepo with two react native/expo frontend app. I tried analyzing my tsserver logs where I saw type resolution steps (i.e. IDE intellisense) taking >5 seconds, but couldn't make much sense of the trace - I passed it to an AI and it suggested that Convex was creating some very large type graphs that were slowing down the TS server/intellisense.
I haven't gotten any closer to solving it either, but would LOVE to hear advice - I like to think that I almost have a monk's anger control, but the 5-10 seconds intellisense times have driven me to banging my fists on the table 😆
13 replies
CCConvex Community
•Created by djbalin on 4/21/2025 in #support-community
FiveTran sync fails
Thanks, I filed a ticket :))
6 replies
CCConvex Community
•Created by ianpaschal on 4/6/2025 in #support-community
Help understanding 'Validator error: Expected ID for table...'
Using
v.id("foo")
in the arguments to a wrapping convex query/mutation should catch this however - could you share the code?9 replies
CCConvex Community
•Created by ianpaschal on 4/6/2025 in #support-community
Help understanding 'Validator error: Expected ID for table...'
If I understand you correctly, I think it's because validation of the
id
argument passed to ctx.db.get
only occurs in TypeScript, and since ids are really just strings, you can appease typescript by doing something like:
const doc = await ctx.db.get("blablabla" as Id<"myTable">)
So you would want to use normalizeId
https://docs.convex.dev/api/interfaces/server.GenericDatabaseReader#normalizeid to check that the argument passed actually could be an id pointing to that table9 replies
CCConvex Community
•Created by Aps on 4/4/2025 in #support-community
Document in args VS db.get
I asked something a bit similar to this here: https://discord.com/channels/1019350475847499849/1312007714121056317/1312007714121056317
Does not seem like there should be any downside to passing the actual documents as argument between functions (just make sure to stay under the limit for function argument size which, I believe, is 8 MB atm)
4 replies
CCConvex Community
•Created by djbalin on 4/1/2025 in #support-community
Granular RLS (e.g. oldDoc/newDoc)
I think our solution for now is to normalize user roles completely out into its own table and then imposing strict rules for insertion and modification of that table
11 replies
CCConvex Community
•Created by djbalin on 4/1/2025 in #support-community
Granular RLS (e.g. oldDoc/newDoc)
Yeah exactly. I guess that these rules are applied at the entry point of the given function, so the change itself is not "known" at this point - contrary to triggers which run after a given function and therefore have access to the change.
11 replies