Function Event wildcards caused infinite loop causing 500 Internal error
- 0
- Databases
- React Native
- Cloud
Hi guys @Support
I created a function to be triggered everytime an item is added or checked state changed in items collection it update the list collection total_items and checked_items
See code
export default async ({ req, res, log, error }) => { const key = req.headers['x-appwrite-key']; const client = new Client() .setEndpoint(process.env.APPWRITE_FUNCTION_API_ENDPOINT) .setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID) .setKey(key);
const databases = new Databases(client);
// ENV variables for collection IDs const databaseId = process.env.APPWRITE_DATABASE_ID; const listsCollectionId = process.env.APPWRITE_LISTS_COLLECTION_ID; const itemsCollectionId = process.env.APPWRITE_ITEMS_COLLECTION_ID;
try { // Get all lists const listDocs = await databases.listDocuments(databaseId, listsCollectionId);
for (const list of listDocs.documents) {
const listId = list.$id;
// Fetch all items for this list
const allItems = await databases.listDocuments(databaseId, itemsCollectionId, [
Query.equal('list_id', listId)
]);
const totalItems = allItems.total;
const checkedItems = allItems.documents.filter(item => item.checked === true).length;
// Update the list document with the new counts
await databases.updateDocument(databaseId, listsCollectionId, listId, {
items_total: totalItems,
items_checked: checkedItems
});
}
return res.json({ success: true, message: 'All lists updated.' });
} catch (err) { error('Failed to update list counts: ' + err.message); return res.json({ success: false, error: err.message }); } };
I then added wildcards events that has caused infinite which has made my Appwrite Project blocked due to an excessive amount of function executions
["databases..collections..documents.*.create", ….] I can not access to my project to update the events. Can i get some help ?
@PA as mentioned on the email sent to you by the support team your function has been flagged and blocked to prevent your project from a billing bomb or excessive usage do to the recursive behavior you've implemented.
Our support team is already in contact with you and will help you understand how to prevent this and unpause your usage.
Appreciate the quick response.
I will wait for a reply from support and hope to resolve this asa from my side.
Recommended threads
- Permissions error
I try to create a row in my table but when i submit i have an error on my permission, i'm new on it so i dont understand the error. I have Row Security enable ...
- Console: Query on attribute has greater ...
I noticed an issue when one of my tables reached over ~800 rows. That table is relational to my users table Within the console I am able to view the table with ...
- Appwrite docs mcp server 502 bad gateway
I added the appwrite docs mcp server to vscode following the docs https://appwrite.io/docs/tooling/mcp/vscode#step-1 but upon start it gives the following error...