fred
04/09/2025, 7:59 AMbod
04/09/2025, 8:08 AMapolloExceptionHandler
👍bod
04/09/2025, 8:09 AMbod
04/09/2025, 8:12 AMbod
04/09/2025, 8:16 AMfred
04/09/2025, 9:21 AM(I think that cursor size link is incorrect)fixed it, thanks! I don't think we have that, but we certainly have queries that are large — we're currently working to split them up but it requires quite some effort and it's something we'll have to address gradually do you have a rough estimate of what "big" is? it would definitely be helpful if we could get more confidence they're the culprit so we can prioritize splitting them up
bod
04/09/2025, 9:30 AMfred
04/09/2025, 10:23 AMbod
04/09/2025, 10:25 AMEduard Boloș
06/05/2025, 5:37 PMwindowSizeBytes
, it hit me why the `SQLiteBlobTooBigException`s could be occurring. We are caching pretty much all executed operations, and we have many top-level mutations that can be executed tens of times daily with different arguments (thus having different cache keys) by some of our most active users. This results in QUERY_ROOT
holding many fields, growing out of proportions.
Whereas not everything really needs to be cached, many times we want some object from the cache to be refreshed with the data from the response, so we can't use doNotStore()
most of the time. Plus that people would forget to do it when needed 😄 Ideally we'd have an option for desired operations to update in the cache the objects inside the response that are already present in the cache, but without adding a field to the parent record / QUERY_ROOT
for the top level object, but not sure if this makes sense.
Looking a bit more into this, I realised that the new normalized cache library could provide some better solutions, like using cache control and removing stale fields, or removing certain operations and dangling references. But it's in alpha, so we'll wait before considering it for real.
Anyway, I don't expect any action from this, but if you have any opinion, I'd be curious to hear it 😄bod
06/05/2025, 7:22 PMFieldKeyGenerator
to e.g. exclude certain arguments from the name of fields in your root record (example here). I'm not 100% sure this covers what you'd like to do - but it looks like it 🙂Eduard Boloș
06/06/2025, 8:08 AM