What happens if…

Records, filters, limits and deletes: each case, what Gemmein does and what you do.

If…What happensWhat you do
The collection doesn't exist404 unknown_collectionAsk your human to create it in the dashboard, with the name and the safety rule
Someone reads another person's records in a private collectionThey see none: list() returns only their own and get() answers 404Nothing
Someone edits or deletes a record they didn't write (shared, community)404, the same answer as a record that doesn't existNothing
A filter is used on a private collectionIt narrows the person's own records; it never reaches anyone else'sNothing
A list asks count: true and more than 10,000 matchtotalAtLeast: 10000, no totalShow "10,000+"
author is used on a private collection403 author_not_visibleDrop it; a private list is already the person's own
author names a person with no recordsAn empty page, and total: 0 when countedNothing
A person publishes in a collection whose posts wait for approval403 moderation_required; the post stays a draftSave without published: true and show the author a "waiting for approval" state
An author edits an approved post thereIt is saved and waits for approval again; Collections counts it as waitingNothing
"publishing": "owner approves" is set on a rule other than community, any "publishing" is set on public_read, or the value is misspelledRefused by gemmein dev and before gemmein sync reaches the cloud (invalid_publishing); nothing is created or changedFix the file
The file and the cloud disagree on an existing collection's Publishinggemmein sync reports it and changes nothingYour human sets Publishing on the collection's page in the dashboard's Data
Someone asks the AI to build a team or workspace feature (invite colleagues, a company account, records shared inside an organisation)The guide tells the AI it isn't supportedKeep each person's data their own; never build it from a shared collection filtered in the app
Posts wait and nobody approves themThey stay drafts; Collections shows how many waitTell your human they approve posts in the dashboard
Your code sends id, userId, role or another server-managed field403 forbidden, and the message names the fieldRemove it; the server sets these itself
The data is not a plain object400 invalid_bodySend an object of fields
A record is deletedIt is kept 30 days and its files stay. After 30 days it is removed for good, with the files only it referenced. A file a buyer owns (a product's file, or one an access grant or payment names) and a file another record still references are keptNothing
Your human saves a record in the dashboard that changed since they opened itNothing is saved. The editor says the record changed since it was opened (409 changed_since_opened)Nothing. They refresh and make the change again
A record's data is over 32 KB413 payload_too_largeKeep large content in a file with upload()
A list asks for more than 100 records, or for 0400 invalid_limit; the limit is never cut down for you. With no limit you get 25 records, hasMore and a cursorPage with cursor
A where uses an unknown operator or too many fields400 invalid_filter, naming the field and the operatorFix the filter
One IP (an IPv6 address counts by its /64) writes more than 60 times in a minute429 with resetAt. Reads allow 150 a minuteWait until resetAt; batch your own loops
A create times out and your code retries it without a keyThe retry can make a second recordGive creates that must happen once a key: the retry then returns the first record
A secret key reads or writes outside its collections, or writes with a read-only scope403 scope_deniedAsk your human to widen the key in the dashboard
A collection that still has records is deleted from the CLI409 collection_not_emptyDelete its records first
Your human deletes a collection in the dashboard, typing its nameIt goes; its records are kept 30 days, and the name can be used again for a new, empty collectionNothing
HTML reaches a community, addressed or direct record400 html_not_allowedStore plain text
A live collection with fixed fields gets a field it doesn't have400 invalid_shapeBuild the field in Development and promote it
Was this page helpful?

Last updated