Rank 4: Virtual Machine
Environment: Appwrite Selfhost
SDK: node-appwrite 28.0
Calling upsertRows (also applies to createRows/updateRows/deleteRows) with more than 100 rows fails with:
Invalid rows param: Value must a valid array no longer than 100 items and Value must be a valid JSON string
I confirmed via a Discord thread that this is the APP_LIMIT_DATABASE_BATCH = 100 constant, and that it's not currently exposed as an env var on self-hosted - while Cloud Pro plan users get this raised to 1000.
Why this matters for self-hosted
I'm bulk-loading large datasets (e.g. unfolding a full Bible translation into a verses table, ~31k rows) from inside an Appwrite Function with a fixed execution timeout. At a 100-row cap, that's 300+ sequential/batched API calls just for one job, which meaningfully eats into the timeout budget and adds load that a higher batch size would reduce. On Cloud this is solved by paying for a higher, but self-hosted operators have no such lever, even though we're the ones running our own hardware and are best placed to judge whether our DB can handle a bigger batch.
Ask
I'd appreciate if the team consider either:
- Exposing APP_LIMIT_DATABASE_BATCH as a configurable env var for self-hosted instances, so operators can raise it based on their own infra, or
- At minimum, defaulting self-hosted to the same 1000-row ceiling Cloud Pro already gets, since self-hosted has no plan tier gating it in the first place.
I hope this gets a consideration.
Thank you